在视图中包含不属于数据模型的字段

时间:2016-05-11 21:11:08

标签: c# .net asp.net-mvc asp.net-mvc-4 razor

在数据库中没有相应列的视图中包含日期字段的最佳方法是什么?例如:

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日期字段吗?如果是这样,我如何确保验证仍然适用于该字段?

1 个答案:

答案 0 :(得分:1)

只需创建一个ViewModel,其中包含该特定视图所需的属性。

$product->get_price_html();

然后在你的剃刀中,你可以沿着这些方向做点什么:

public class EmployeeEditViewModel
{
    [DataType(DataType.Date)]
    [Display(Name = "Review Date")]
    [Required]
    public DateTime? ReviewDate { get; set; }

    public EmployeeModel Employee { get; set; }
}
相关问题