视图模型数据绑定
本文关键字:数据绑定 模型 视图 | 更新日期: 2023-09-27 17:54:45
玩周围的视图模型,试图让我的头周围,因为我们来学习大约一半通过一个项目,使用实体框架模型来显示数据不是我们应该做的方式,所以我们试图学习正确的方式,或者我认为我们是。
我在数据库中有一个名为Users的表,并创建了一个ADO.net实体数据模型,我现在简单地称之为"MainModel",然后创建了一个名为"MainViewModel"的新类文件。
在这个视图模型中,我从MainModel中的User表中获取了属性,我们希望在表的视图中显示这些属性以显示每个数据库条目。MainViewModel代码如下:
namespace WebApplication9.Models
{
public class MainViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Company { get; set; }
}
}
然后我有一个名为MainController的控制器,它有一个ActionResult for Index,如下所示:
public ActionResult Index(MainViewModel viewModel)
{
var users = new User()
{
FirstName = viewModel.FirstName,
LastName = viewModel.LastName,
EMail = viewModel.Email,
Company = viewModel.Company,
};
List<MainViewModel> viewModelList = new List<MainViewModel>();
return View(viewModelList);
}
到目前为止,我不知道下一步该去哪里,不幸的是,我读的所有东西都让我更加困惑。它确实显示了一个表,其中包含FirstName、LastName、Email和Company表头,但它没有在视图中显示任何数据。
任何帮助都将是非常感激的,因为我们迫切需要重新开始。
谢谢
假设这是你的HttpGet
动作(虽然不确定为什么它把你的viewModel
作为一个参数?),你实际上不是用任何东西填充你的列表,你要从数据库中得到它,然后把它转换成你的视图模型准备显示,像:
public ActionResult Index(MainViewModel viewModel)
{
var users = context.Users.ToList(); //use your dbContext
List<MainViewModel> viewModelList = users
.Select(u => new MainViewModel
{
FirstName = u.FirstName,
LastName = u.LastName,
Email = u.Email,
Company = u.Company
}).ToList();
return View(viewModelList);
}