我在MVC中使用EditorTemplate时遇到了麻烦。
我的EditorTemplate看起来像这样:
<script type="text/javascript">
$(function () {
$('.datepicker').datepicker({
dateFormat: 'dd-mm-yy'
});
});
</script>
<tr>
<td>@Html.DisplayFor(model => model.Title)</td>
<td>@Html.DisplayFor(model => model.Authors)</td>
<td><a href="/administration/products/bookz/bookform.aspx?book=@Model.BookId" target="_blank">@Html.DisplayFor(model => model.ISBN13)</a></td>
<td>@extPrice.ToString("N2") </td >
<td>@Html.TextBoxFor(model => model.Price, new { data_val_number = "The field Price must be a number." })</td>
<td>@Html.TextBoxFor(model => model.MemberPriceStartDate, "{0:dd-MM-yyyy}", new { @class = "form-control datepicker" })</td>
<td>@Html.TextBoxFor(model => model.MemberPriceEndDate, "{0:dd-MM-yyyy}", new { @class = "form-control datepicker" })</td>
@Html.HiddenFor(model => model.BookId)
</tr>
@model
的类型为Books
(由于数据库混乱-_-,图书是单数的。)
从视图中调用EditorTemplate,如下所示:
@Html.EditorFor(model => model)
@model
的类型为IEnumerable<Books>
。
发布到我的控制器后,Books.Price
正确传递,但Books.MemberPriceStartDate
和Books.MemberPriceEndDate
始终为空。
隐藏字段Books.BookId
也正确传递。
关于为什么会发生这种情况的任何想法?
编辑:
以下是Books
对象的相关属性:
public Nullable<System.DateTime> MemberPriceStartDate { get; set; }
public Nullable<System.DateTime> MemberPriceEndDate { get; set; }
public Nullable<decimal> Price { get; set; }
public int BookId { get; set; }
答案 0 :(得分:0)
在特定字段和模型的模型日期格式中 您的输入日期格式 - “dateFormat:'dd-mm-yy'”可能不匹配。