我正在处理我的小项目中的一个页面,我希望将数据库中的所有用户列入页面。
目前我正在选择声明,但我不知道如何将其传递给视图:
public ActionResult Index()
{
SqlConnection connection = new ...
connection.Open();
SqlCommand command = new SqlCommand("SELECT * FROM users", connection);
???
如何将其传递给视图以及如何列出所有项目?有什么建议吗?
答案 0 :(得分:2)
您需要做的是使用您的用户列表填充ViewData.Model。所以试试这个:
//Same code as you already have...
SqlDataAdapter da = new SqlDataAdapter(command);
DataTable dt = new DataTable();
da.Fill(dt);
List<CustomUserObject> userList = new List<CustomUserObject>();
foreach (DataRow dr in dt.Rows)
{
//Create a class to house your user object before this next part will work.
CustomUserObject cuo = new CustomUserObject { FirstName = dt.Rows[0]["FirstName"].ToString(), LastName = dt.Rows[0]["LastName"].ToString(), etc... };
userList.Add(cuo);
}
ViewData.Model = userList;
return View();
现在,假设您尚未为操作方法创建视图,请右键单击操作方法内部的某个位置(在Visual Studio中)并创建视图。确保视图选择了强类型视图。将视图模型设置为IEnumerable<CustomUserObject>
。现在当你在视图中时,你会像这样引用你的模型。
<% foreach (CustomUserObject cuo in Model)
{ %>
<%: Html.TextBoxFor(cuo.FirstName) %>
<!-- More controls for all properties on your user object... -->
<% } %>