これを解決するのに非常に苦労しました(そして、どこかでばかげた間違いをしていると確信しています:))誰か助けてください。
送信中に、モデルで JQuery datepicker を使用して選択した日付を取得できません。「1/1/0001 12:00:00 AM」という値が得られます。何か不足していますか?
問題を特定するために、Visual Studio 2010 のテンプレートを使用して単純な MVC3 アプリケーションを作成しました。詳細は次のとおりです。
モデル:
namespace DatePickerApp.Models
{
public class DatePickerClass
{
public DateTime BirthDate { get; set; }
}
}
コントローラ:
namespace DatePickerApp.Controllers
{
public class BirthDateController : Controller
{
//
// GET: /BirthDate/Create
public ActionResult Create()
{
return View();
}
//
// POST: /BirthDate/Create
[HttpPost]
public ActionResult Create(DatePickerApp.Models.DatePickerClass DatePickerClass)
{
try
{
// TODO: Add insert logic here
return View();
}
catch
{
return View();
}
}
}
}
cshtml ビュー:
@model DatePickerApp.Models.DatePickerClass
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.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 type="text/javascript">
$(document).ready(function () {
$("#date").datepicker({ dateFormat: 'dd/mm/yy' });
});
</script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>DatePickerClass</legend>
<div class="editor-label">
@Html.LabelFor(model => model.BirthDate)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.BirthDate, new { id = "date" })
@Html.ValidationMessageFor(model => model.BirthDate)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>