上周我意识到我的视图模型填充了一个记录列表,当我真正想要的只是我视图中所选记录的单个记录时。我已经推断出我的视图模型是错误的,但我似乎无法对如何更改它进行思考,因此它只是吐出选定的记录而不是数据库中的记录列表。
public class SummaryVM : BaseViewModel
{
public IList<RecordVM> Records { get; set; }
public SummaryVM()
{
this.Records = new List<RecordVM>();
}
}
我猜我在想这就像我做的一切。
编辑:
新的ViewModel
public class SummaryVM : BaseViewModel
{
public RecordVM Record { get; set; }
}
我的控制器
public ActionResult Summary(int id)
{
var vm = new SummaryVM
{
Record = new RecordVM()
};
return View(vm);
}
答案 0 :(得分:0)
将集合更改为单个实例?
public class SummaryVM : BaseViewModel
{
public RecordVM Record { get; set; }
}
现在您必须确保无论您在何处使用此视图模型,都会更新您的代码以将其视为单个对象而不是集合( Record
属性上没有foreach循环等)
请注意,我们没有将Record属性初始化为Record实例的构造函数。因此,您需要在访问记录类型
上的任何属性之前明确执行此操作var vm= new SummaryVM { Record = new RecordVM() };
vm.RecordId = 123;
在访问其任何属性之前,在Record属性上执行null
以防止&#34;对象引用未设置为实例&#34;错误
@model SummaryVM
<h2>Record</h2>
@if(Model.Record!=null)
{
<h3>@Model.Record.RecordI</h3>
}