【发布时间】:2013-04-18 16:22:25
【问题描述】:
我是 asp.net jquery 和 html5 的初学者,我正在开发一个 asp.net mvc 4 站点,其中有一个包含两个日期字段的表单。我不想手动插入日期,所以我尝试使用这个解决方案来实现一个简单的日期选择器:
<fieldset>
<legend>RangeDateViewModel</legend>
<div class="editor-label">
Start Date
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.StartDate, new{ @class = "date" })
@Html.ValidationMessageFor(model => model.StartDate)
</div>
<div class="editor-label">
End Date
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.EndDate, new{ @class = "date" })
@Html.ValidationMessageFor(model => model.EndDate)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
@Styles.Render("~/Content/themes/base/css")
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$(".date").datepicker();
});
</script>
}
代码运行良好,但如果我选择从每月 13 日到 30/31 日的日期,我总是会收到相同的警告:“字段 StartDate 必须是日期。”和“EndDate 字段必须是日期。”
编辑: 我按要求添加了我的 ViewModel:
public class RangeDateViewModel
{
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
【问题讨论】:
-
反序列化根据 HTTP 方法存在差异。如果您使用 GET,则 binder 将使用 invariantculture 来绑定参数,如果使用 POST,则 binder 将使用 currentculture
-
我没有看到你的评论@hazzik,对不起。我使用 POST。好的,我该怎么做才能解决这个问题? :)
-
您需要设置日期格式,以反映您当前在 ASP.NET 应用程序上的文化,如答案中所述。
标签: jquery asp.net jquery-ui asp.net-mvc-4