EditorTemplate中的TextboxFor不会保存值

时间:2016-07-20 08:59:39

标签: c# asp.net-mvc mvc-editor-templates asp.net-mvc-5.2

我在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.MemberPriceStartDateBooks.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; }

1 个答案:

答案 0 :(得分:0)

在特定字段和模型的模型日期格式中  您的输入日期格式 - “dateFormat:'dd-mm-yy'”可能不匹配。