Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在视图中包含不属于数据模型的字段_C#_.net_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

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

C# 在视图中包含不属于数据模型的字段,c#,.net,asp.net-mvc,asp.net-mvc-4,razor,C#,.net,Asp.net Mvc,Asp.net Mvc 4,Razor,在DB中没有相应列的视图中包含日期字段的最佳方式是什么?例如: 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.Edi

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

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>
模型:
[数据类型(DataType.Date)]
[显示(Name=“审核日期”)]
[必需]
公共约会时间?ReviewDate{get;set;}
视图:
@模范员工
...
@LabelFor(model=>model.ReviewDate)
@EditorFor(model=>model.ReviewDate)
@Html.ValidationMessageFor(model=>model.ReviewDate})
但是我在DB表中没有列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>
@model ViewModel.EmployeeEditViewModel
...
@LabelFor(model=>model.ReviewDate)
@EditorFor(model=>model.ReviewDate)
@Html.ValidationMessageFor(model=>model.ReviewDate)
@LabelFor(model=>model.Employee.SomeValue)
@EditorFor(model=>model.Employee.SomeValue)
@Html.ValidationMessageFor(model=>model.Employee.SomeValue)