MVC4 ビューで 1 つの Ajax.BeginForm を使用して複数のアクションを呼び出す方法 (可能であれば) を誰かに説明してもらえますか? 私がやろうとしていることを説明しましょう。私のビューには、コントローラーに 2 つのパラメーターを提供するフォームがあります。このビューには、フォームが送信されたときに更新する 4 つの部分ビューもあります。各アクションは、ページの 4 つのセクションを更新する部分ビューを返します。
私が理解していることから、各 Ajax.BeginForm はコントローラーで 1 つのアクションのみを呼び出すことができます。フォームのボタンをクリックして、ページの 4 つの部分ビューを更新する最良の方法は何ですか?
これが私の見解です。
<div id="dayTab" data-metro-container="dashboardForm">
@using (Ajax.BeginForm("Products", "Dashboard", new AjaxOptions { UpdateTargetId="ProductsDiv", OnComplete = "processDay" }))
{
<table>
<tr>@Html.ValidationSummary()</tr>
<tr>
<td>@Strings.LabelDashboardDate :
</td>
<td>
@Html.HiddenFor(model => model.DateRangeFilter)
@Html.TextBoxFor(model => model.DateRangeCriteria, new { @class = "dateRangeClass" })
</td>
<td>
<input id="btnApply" type="submit" name="btnApply" value="@Strings.LabelApply" title="@Strings.TooltipDashboardApply" />
</td>
<td>
<span class="customNoWrap" data-metro-spinner="spinner" style="display: none;">
<img src="@ConfigurationCache.Settings.CSSPath/Content/themes/metro/Images/loading.gif")" alt="" class="metroCenterTag"/>
</span>
</td>
</tr>
</table>
}
<div style="float:left;">
<div id="ProductsDiv">
@{ Html.RenderAction("Products"); }
</div>
<div id="QuantitiesDiv" style="height: 200px;">
@{ Html.RenderAction("Quantities"); }
</div>
</div>
<div style="float: left;">
<div id="PurchaseOrdersDiv" style="margin-left: 10px;">
@{ Html.RenderAction("PurchaseOrders"); }
</div>
<div id="BoxesDiv" style="margin-left: 10px;">
@{ Html.RenderAction("Boxes"); }
</div>
<div id="PalletsDiv" style="margin-left: 10px;">
@{ Html.RenderAction("Pallets"); }
</div>
</div>
<div style="clear: both"></div>
実際、jQuery タブには 4 つのタブがあり、各タブは同じ構造、同じ部分ビューを持っています。フォームを送信して、現在のタブの 4 つの部分ビューを更新する必要があります。