2 つの部分ビューをレンダリングするメイン ビューがあります。メイン ビューには、フォーム内の両方の部分ビューが含まれます。各部分ビューにはフォームも含まれています。3 つのビューはすべて同じビューモデルを共有します。私がやりたいことは、すべてのビューからのデータをメイン ビューでカプセル化し、特定のコントローラー アクションの結果を部分ビューで実行することです。
これが可能かどうか知りたいです。デバッグすると、コンテンツが常にメイン ビュー フォームの HTTPPost に投稿されることがわかります。それに応じて、各フォームの送信ボタンがあります。コード投稿で申し訳ありませんが、すべて分割されて出てきます。
メイン ビュー:
@using (Html.BeginForm("Main", "Registration", FormMethod.Post,
new { @class="mainform" }))
{
<form>
<fieldset>
<div id ="option1" class="conglomerate">
@Html.Partial("_GetBusiness")
</div>
<div id ="option2" class="dealership">
@Html.Partial("_GetLocation")
</div>
<button type="submit" value="Create" class="buttonBlue" id="">
<span>Create a new dealer</span>
</button>
</fieldset>
</form>
部分 1
@using (Html.BeginForm("CreateBusiness", "Business", FormMethod.Post,
new { @class="buisinessform" }))
{
<form>
<div class="editor-field">
@Html.DropDownListFor(m =>m.BusinessId, new SelectList(Model.Businesses,
"BusinessId", "BusinessName"), "")
</div>
<label>Your company not listed? Register yours below:</label>
<div class="editor-label">
@Html.LabelFor(model => model.BusinessName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.BusinessName)
@Html.ValidationMessageFor(model => model.BusinessName)
</div>
<button type="Button" value="" class="buttonBlue"id="TestSubmit">
<span>Add Dealer</span>
</button>
<div class ="confirm">
<button type="submit" value="Create" class="buttonBlue" id="">
<span>Click here to confirm dealer addition</span>
</button>
</div>
</form>
}