我正在使用Stuart Leeks的这本指南:ASP.NET MVC 3: Integrating with the jQuery UI date picker and adding a jQuery validate date range validator
我得到这个“怪异”的错误:“传入字典的模型项为null,但是这个字典需要一个'System.DateTime'类型的非空模型项。” ...在我的create.cshtml视图中。
我使用了一些不同的方法,因为我(目前)只对实际的插件工作感兴趣。而且我希望能够在创建项目时使用datepicker。
我的“Speaker.cs”模型:
[DataType(DataType.Date)]
[DefaultValue("00-00-00")] <- thought this might fix the "not null error", with no succes..
public DateTime ReleaseDate { get; set; }
在“views / Speaker”EditorTemplates“文件夹”下添加了部分视图“Date.cshtml”。
@model DateTime
@Html.TextBox("", Model.ToString("dd/MM/yyyy"), new { @class = "date" })
我的create.cshtml视图
@model HiFiWarehouse.Models.Speaker
@Html.EditorFor(model => model.ReleaseDate)
在脚本文件夹
中添加了“EditorHookup.js”/// <reference path="jquery-1.5.1.js" />
/// <reference path="jquery-ui-1.8.11.js" />
$(document).ready(function () {
$(".date").datepicker({ dateFormat: "dd/mm/yy" });
});
在控制器中创建动作
//
// GET: /Speaker/Create
[Authorize(Roles = "Administrators")
public ActionResult Create()
{
return View();
}
//
// POST: /Speaker/Create
[HttpPost]
[Authorize(Roles = "Administrators")]
public ActionResult Create(Speaker speaker)
{
if (ModelState.IsValid)
{
db.Speakers.Add(speaker);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(speaker);
}
我的_Layout.cshtml标题:
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/EditorHookup.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
</head>
我在这里做错了什么? :)
答案 0 :(得分:2)
它告诉您需要使ReleaseDate成为可以为空的类型:
public DateTime? ReleaseDate { get; set; }
另一个问题是00-00-00的DefaultValue不起作用。据我所知,DateTime.MinValue是0001-01-01。