2

2 つのアクション メソッドがあります。1 つは「新製品」の挿入データを送信し、もう 1 つはその製品の写真をアップロードする必要があります。それぞれに独自のモデル、ビューがあり、それぞれが完全に分離されたコントローラーから独自のアクションを呼び出します。

しかし、両方のフォームを 1 つのビューに表示する必要があります。

@html.action() を使用して、「Upload」アクションのビューを「Insert New Product」アクションのビューにレンダリングすることでこれを行いました。

問題は、両方の送信ボタンが同じ「Insert New Product」アクションを呼び出すことです:|

見てください。最初のビューは次のとおりです。

@using (Html.BeginForm("Insert_New_Product", "Admin", FormMethod.Post))
{
// Inputs, Validation Messages and all those stuff ...
   <input type="submit" name="Insert_New_Product" value="Add New Product" />

// Here, I render the "Upload" View :
   @Html.Action("Upload", "UploadImage")
 }

「アップロード」ビューは次のようになります。

@using (Html.BeginForm("Upload", "UploadImage", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
// Inputs and stuff ... 

  <input type="submit" value="Upload" name="Upload"/>
}

では、送信時にそれぞれ独自の ActionResult を呼び出す 2 つ (またはそれ以上) のフォームを作成するにはどうすればよいでしょうか? よろしくお願いします。

4

1 に答える 1

1

@Html.Action("Upload", "UploadImage")これが問題だと思います。基本的に、最初のフォームのに2 番目のフォームをレンダリングしています。それはうまくいきません。これを次のように変更してみてください。

@using (Html.BeginForm("Insert_New_Product", "Admin", FormMethod.Post)) 
{ 
    // Inputs, Validation Messages and all those stuff ... 
    <input type="submit" name="Insert_New_Product" value="Add New Product" />
} 

// Here, I render the "Upload" View : 
@Html.Action("Upload", "UploadImage")

また、応答ストリームに直接書き込むHtml.RenderActionのではなく、実際に使用する必要があります。Html.Action詳しくはこちらをご覧ください。そのようです:

@{ Html.RenderAction("Upload", "UploadImage"); }
于 2012-08-08T20:12:54.180 に答える