これを行う方法に関するいくつかの投稿を読みましたが、すべてをまとめることはできません。
私は自分のモデルを持っています:
public class Period
{
[Required]
[DataType(DataType.DateTime)]
[Display(Name = "Start")]
public DateTime Start { get; set; }
[Required]
[DataType(DataType.DateTime)]
[Display(Name = "End")]
public DateTime End { get; set; }
}
私のコントローラー
public ActionResult Test()
{
return PartialView();
}
[HttpPost]
public ActionResult Test(Period model)
{
if(model.IsValid){
return RedirectToAction("Report", model)
}
return PartialView(model);
}
そして部分図
@model Period
<a onclick="openRequestOrderReportForm()" class="" role="button" aria-disabled="false">Report</a>
<div id="dRequestOrderReport">
@using (Ajax.BeginForm("Test", "Reports", null, new AjaxOptions { UpdateTargetId = "dRequestOrderReport" }, new { id = "RequestOrderReportForm" }))
{
@Html.EditorFor(m => Model)
}
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#dRequestOrderReport").dialog({
modal: true,
autoOpen: false,
title:'title',
buttons: {
"Go": function () {
$("#RequestOrderReportForm").submit();
},
Cancel: function () {
$(this).dialog("close");
}
}
});
});
function openRequestOrderReportForm()
{
$("#dRequestOrderReport").dialog("open");
}
</script>
入力を検証できるようにする必要があります-有効でない場合はフォームを開いたままにし、有効な場合はページ全体を他のアクションに移動する必要があります。
私がやりたいことに最も近いのはjQuery Modal Dialogs と MVC3 Partial Viewsですが、動作させることができません。