MVC 视图模型抓取单个记录而不是记录列表,重写
MVC View Model Grab single record not a list of records, rewrite
上周我意识到我的视图模型正在填充记录列表,而我真正想要的只是从我的视图中选择的记录的单个记录。我推断是我的视图模型出错了,但我似乎无法思考如何更改它,所以它只是吐出选定的记录,而不是数据库中的记录列表。
public class SummaryVM : BaseViewModel
{
public IList<RecordVM> Records { get; set; }
public SummaryVM()
{
this.Records = new List<RecordVM>();
}
}
我想我想太多了,就像我什么都做一样。
编辑:
新建视图模型
public class SummaryVM : BaseViewModel
{
public RecordVM Record { get; set; }
}
我的控制器
public ActionResult Summary(int id)
{
var vm = new SummaryVM
{
Record = new RecordVM()
};
return View(vm);
}
将集合更改为单个实例?
public class SummaryVM : BaseViewModel
{
public RecordVM Record { get; set; }
}
现在你必须确保无论你在哪里使用这个视图模型,你的代码都会更新以将其视为单个对象而不是集合([=13= 上没有 foreach 循环等] 属性)
请注意,我们没有将 Record 属性 初始化为 Record 实例的构造函数。因此,您需要在访问记录类型
上的任何 属性 之前明确执行此操作
var vm= new SummaryVM { Record = new RecordVM() };
vm.RecordId = 123;
在访问其任何属性之前对记录 属性 执行 null
以防止 "Object Reference not set to an instance" 错误
@model SummaryVM
<h2>Record</h2>
@if(Model.Record!=null)
{
<h3>@Model.Record.RecordI</h3>
}
上周我意识到我的视图模型正在填充记录列表,而我真正想要的只是从我的视图中选择的记录的单个记录。我推断是我的视图模型出错了,但我似乎无法思考如何更改它,所以它只是吐出选定的记录,而不是数据库中的记录列表。
public class SummaryVM : BaseViewModel
{
public IList<RecordVM> Records { get; set; }
public SummaryVM()
{
this.Records = new List<RecordVM>();
}
}
我想我想太多了,就像我什么都做一样。
编辑:
新建视图模型
public class SummaryVM : BaseViewModel
{
public RecordVM Record { get; set; }
}
我的控制器
public ActionResult Summary(int id)
{
var vm = new SummaryVM
{
Record = new RecordVM()
};
return View(vm);
}
将集合更改为单个实例?
public class SummaryVM : BaseViewModel
{
public RecordVM Record { get; set; }
}
现在你必须确保无论你在哪里使用这个视图模型,你的代码都会更新以将其视为单个对象而不是集合([=13= 上没有 foreach 循环等] 属性)
请注意,我们没有将 Record 属性 初始化为 Record 实例的构造函数。因此,您需要在访问记录类型
上的任何 属性 之前明确执行此操作var vm= new SummaryVM { Record = new RecordVM() };
vm.RecordId = 123;
在访问其任何属性之前对记录 属性 执行 null
以防止 "Object Reference not set to an instance" 错误
@model SummaryVM
<h2>Record</h2>
@if(Model.Record!=null)
{
<h3>@Model.Record.RecordI</h3>
}