在视图中包括日期字段的最佳方法是什么,该日期字段在数据库中没有相应的列?例如:
Model:
[DataType(DataType.Date)]
[Display(Name = "Review Date")]
[Required]
public DateTime? ReviewDate { get; set; }
View:
@model Model.Employee
...
<div>
@Html.LabelFor(model => model.ReviewDate)
@Html.EditorFor(model => model.ReviewDate)
@Html.ValidationMessageFor(model => model.ReviewDate})
</div>
但是我在数据库表中没有ReviewDate列。我只需要在视图中使用它就可以从用户那里收集日期条目以进行其他处理,但这不是我的数据模型的一部分。我想到只将其包括在模型类中,以便可以控制属性以进行验证等。
最好的方法是什么?我应该从模型中删除它,而在视图中只有一个孤立的HTML日期字段吗?如果是这样,我如何确保验证仍可在该字段上进行?
只需创建一个ViewModel,其中包含该特定视图所需的属性。
public class EmployeeEditViewModel
{
[DataType(DataType.Date)]
[Display(Name = "Review Date")]
[Required]
public DateTime? ReviewDate { get; set; }
public EmployeeModel Employee { get; set; }
}
然后,可以在剃刀中按照以下步骤进行操作:
@model ViewModel.EmployeeEditViewModel
...
<div>
@Html.LabelFor(model => model.ReviewDate)
@Html.EditorFor(model => model.ReviewDate)
@Html.ValidationMessageFor(model => model.ReviewDate)
</div>
<div>
@Html.LabelFor(model => model.Employee.SomeValue)
@Html.EditorFor(model => model.Employee.SomeValue)
@Html.ValidationMessageFor(model => model.Employee.SomeValue)
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句