如果你確實需要這樣做,那麼這就是你可以做的。有可能有更好的方法來做,但這是我目前所擁有的。我沒有進行數據庫調用,我只是使用虛擬數據。請修改代碼以適應您的方案。我使用jQuery
來填充HTML table
。
在我的控制器中,我有一個名爲GetEmployees
的操作方法,它返回所有員工的JSON result
。在這裏,你會打電話給你的資料庫從數據庫返回的用戶:
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:
這是我怎麼會做呢..
我總是創建一個視圖模型類的觀點。在這種情況下,我會叫它像UserListViewModel
:
public class UserListViewModel
{
IEnumerable<User> Users { get; set; }
}
在我的控制器中我會通過呼叫填充此用戶列表數據庫返回的所有用戶:
public ActionResult List()
{
UserListViewModel viewModel = new UserListViewModel
{
Users = userRepository.GetAllUsers()
};
return View(viewModel);
}
在我看來,我想有以下幾點:
<table>
@foreach(User user in Model.Users)
{
<tr>
<td>First Name:</td>
<td>user.FirstName</td>
</tr>
}
</table>
爲什麼要使用不同的操作方法比用戶頁面來填充列表?這會變慢,需要兩個請求,而不是一個。 – 2012-03-22 02:03:05
對於初始頁面加載,我不需要兩個。但是,當通過用戶列表進行分頁時,我需要異步加載用戶列表。我想爲什麼不爲初始加載調用相同的函數。 – user471317 2012-03-22 15:59:54
以下哪個答案可以解答您的問題? – 2016-08-31 08:55:10