使用MVC3和jQuery插件datepicker。
我可以看到日历,我可以将日期设置为字段。但是当我将模型发布回控制器时,我总是为该属性获取空值。并且它将该特定日期显示为无效日期。
这是我的模特。
[DataType(DataType.DateTime)]
[DisplayName("PostTime")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? PostTime { get; set; }
我的观点的一部分
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>BlogPost</legend>
<div class="editor-label">
@Html.LabelFor(model => model.PostTitle)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.PostTitle)
@Html.ValidationMessageFor(model => model.PostTitle)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.PostTime)
</div>
<div class="editor-field">
<span class="datepicker">
@Html.EditorFor(model => model.PostTime)
@Html.ValidationMessageFor(model => model.PostTime)
</span>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#PostTime").datepicker({
showOn: 'both',
buttonImage: "/content/img/calendar_icon.png"
});
});
</script>
控制器
[HttpPost]
public ActionResult Create(BlogPost blogpost)
{
if (ModelState.IsValid)
{
var db = new BlogPostContext();
db.Add(blogpost);
return RedirectToAction("Index");
}
return View(blogpost);
}
有人可以找到我想要的东西。
感谢。
答案 0 :(得分:1)
至于收到错误消息称它不是有效日期,您需要指定日期选择器的格式:
$(document).ready(function () {
$("#PostTime").datepicker({
showOn: 'both',
dateFormat: 'dd/mm/yy',
buttonImage: "/content/img/calendar_icon.png"
});
});