0

连接日期选择器的问题

部分视图的代码

@model System.DateTime
@Html.TextBox("", Model.ToString("dd/MM/yy"), new { @class = "date" })

视图的代码

 @Html.TextBox("DateTime", (Model.AdvertStartDate.ToString()), new { @class = "date" })

脚本

 <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

用于日期选择器的代码

<script type="text/javascript">
    $(document).ready(function () {
        $('.date').datepicker
        ({
            dateFormat: 'dd/mm/yy',
            showStatus: true,
            showWeeks: true,
            currentText: 'Now',
            autoSize: true,
            gotoCurrent: true,
            showAnim: 'blind',
            highlightWeek: true

        });
    });
</script>

型号代码

 [Required]
   public DateTime AdvertStartDate { get; set; }

日期正在插入文本框中,但未在数据库中更新

你能建议缺少的东西吗?

4

2 回答 2

1

我认为由<input>渲染的 HTML 元素TextBox("DateTime",...)没有正确的名称(名称将是“DateTime”),因此AdvertStartDate当数据发布到服务器时,它没有正确绑定到您的模型属性。

您的“部分视图”对我来说就像一个 EditorTemplate。在这种情况下,您应该能够在您的视图中使用它:

@Html.EditorFor(model => model.AdvertStartDate)

因为AdvertStartDateDateTime包含 DatePicker 的 EditorTemplate 类型,所以应该使用它来呈现输入元素。

如果 EditorTemplate 文件的名称不是DateTime.cshtml- 像AnotherTemplateName.cshtml- 您可以显式指定模板:

@Html.EditorFor(model => model.AdvertStartDate, "AnotherTemplateName")
于 2012-04-09T12:18:58.090 回答
0

Datapicker 不是 MVC 应用程序中易于实现的元素。

尝试考虑接下来的事情:

  1. 确保将数据选择器中的数据发送到服务器(数据选择器应具有适当的名称)
  2. 确保 datapicker 数据格式与您的应用程序数据格式相同(可能因所选文化而异) - 在这种情况下,数据被发送到服务器,但并不总是有效,因为 31.01 被转换为第 31 个月,第 1 个月。
于 2012-04-09T15:37:46.990 回答