本当にこのようにする必要がある場合は、これができます。おそらくこれを行うにはより良い方法がありますが、これは私が今のところ持っているすべてのものです。私はデータベースコールをしなかった、私はちょうどダミーデータを使用しました。シナリオに合わせてコードを変更してください。 HTML table
を入力するのにjQuery
を使用しました。
私のコントローラには、すべての従業員がJSON result
を返すGetEmployees
というアクションメソッドがあります。あなたは、データベースからユーザーを返すようにリポジトリを呼ぶような場所です:
public ActionResult GetEmployees()
{
List<User> userList = new List<User>();
User user1 = new User
{
Id = 1,
FirstName = "First name 1",
LastName = "Last name 1"
};
User user2 = new User
{
Id = 2,
FirstName = "First name 2",
LastName = "Last name 2"
};
userList.Add(user1);
userList.Add(user2);
return Json(userList, JsonRequestBehavior.AllowGet);
}
Userクラスは次のようになります。あなたのビューで
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
次を持つことができます:
<div id="users">
<table></table>
</div>
<script>
$(document).ready(function() {
var url = '/Home/GetEmployees';
$.getJSON(url, function (data) {
$.each(data, function (key, val) {
var user = '<tr><td>' + val.FirstName + '</td></tr>';
$('#users table').append(user);
});
});
});
</script>
上記のコードに関して:var url = '/Home/GetEmployees';
Home
はコントローラであり、上記で定義したアクションメソッドはGetEmployees
です。
こちらがお役に立てば幸いです。
UPDATE:私は常にビューのビューモデルクラスを作成
これは私がそれを行っているだろうか..です。
public ActionResult List()
{
UserListViewModel viewModel = new UserListViewModel
{
Users = userRepository.GetAllUsers()
};
return View(viewModel);
}
そして、私の見解では:私はすべてのユーザーを返すデータベースへの呼び出しからこのユーザーリストを作成するでしょう、私のコントローラで
public class UserListViewModel
{
IEnumerable<User> Users { get; set; }
}
:この場合、私はそれをUserListViewModel
のようなものを求めているだろう私は、次のを持っているでしょう:
<table>
@foreach(User user in Model.Users)
{
<tr>
<td>First Name:</td>
<td>user.FirstName</td>
</tr>
}
</table>
は、なぜあなたはリストを作成するために、ユーザーのページとは異なるアクションメソッドを使用しますか?これは遅くなり、1つではなく2つの要求を必要とします。 –
最初のページの読み込みには、2つは必要ありません。しかし、ユーザーリストをページングするときに、ユーザーリストを非同期に読み込む必要があります。なぜ私は初期の負荷に対しても同じ関数を呼び出さないと思った。 – user471317
あなたの質問に答えた答えはどれですか? –