現在、強く型付けされた 2 つのビューで構成されるフォームを投稿しようとしています。この質問は似ていますが、答えがありません:
MVC 3 Razor フォームの投稿と複数の厳密に型指定された部分ビューがバインドされていない
フォームを送信すると、コントローラーに送信されたモデルは常に null になります。これを機能させるために数時間を費やしました。これは単純なはずです。ここで何か不足していますか?コントローラーに投稿して新しいページをレンダリングできるようにするだけで、ajax を実行する必要はありません。
ありがとう
これが私のビューコードです:
<div>
@using (Html.BeginForm("TransactionReport", "Reports", FormMethod.Post, new {id="report_request"}))
{
ViewContext.FormContext.ValidationSummaryId = "valSumId";
@Html.ValidationSummary(false, "Please fix these error(s) and try again.", new Dictionary<string, object> { { "id", "valSumId" } });
@Html.Partial("_ReportOptions", Model.ReportOptions);
@Html.Partial("_TransactionSearchFields", new ViewDataDictionary(viewData) { Model = Model.SearchCriteria });
}
コントローラーのコードは次のとおりです。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult TransactionReport(TransactionReportRequest reportRequest)
{
var reportInfo = new List<TransactionReportItem>();
if (ModelState.IsValid)
{
var reportData = _reportDataService.GetReportData(Search.MapToDomainSearchCriteria(reportRequest.SearchCriteria));
if (reportData!=null)
{
reportInfo = reportData.ToList();
}
return View(reportInfo);
}
return View(reportInfo);
}
部分ビュー自体は、入札とモデルの表示だけを行っているため、ほとんど関係ありません。