我在视图中有以下CSHtml 我的模型中还有以下代码
<td class="editor-field">
@Html.EditorFor(model => model.Required_From)
@Html.ValidationMessageFor(model => model.Required_From)
</td>
<script type="text/javascript">
$(function () {
//debugger
$("#Required_From").datepicker({ dateFormat: "mm/dd/yy", changeYear: true, changeMonth: true });
});
$(function () {
//debugger
$("#Required_To").datepicker({ dateFormat: "mm/dd/yy", changeYear: true, changeMonth: true });
});
</script>
在我的模型中,我有以下代码:
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Required_To", DbType="DateTime NOT NULL")]
public System.DateTime Required_To
{
get
{
return this._Required_To;
}
set
{
if ((this._Required_To != value))
{
this._Required_To = value;
}
}
}
我需要能够显示短日期格式,但是当我这样做时,我收到以下错误: “模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。” 有没有办法使用短日期格式的模型和日期选择器? TIA 布鲁斯
答案 0 :(得分:2)
我建议您始终在视图中使用视图模型,并且永远不要将域模型传递给它们。因此,在视图模型中,您可以使用[DisplayFormat]
属性修饰属性,如下所示:
public class MyViewModel
{
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime RequiredFrom { get; set; }
}
然后,当您编写以下内容时,您的视图将强烈输入到视图模型中:
@Html.EditorFor(model => model.RequiredFrom)
您将获得所需的格式。
如果您想反对良好做法而不使用视图模型,可以这样说:
@Html.TextBox("Required_From", Model.Required_From.ToShortDateString())