質問

部分ビューの一部であるフォームがあり、フォームを含むビューのコンテキストに基づいて別の場所にフォームを送信する必要があります。フォームにはmultipart / form-data enctypeがあり、アクションが自動的に入力されるので、Html.BeginFormを使用できません。

フォームアクションとして現在のコントローラー/アクションを入力するために呼び出すことができる単純な変数はありますか? ViewContext.RouteData.Values [" action"]、ViewContext.RouteData.Values [" controller"]がそれらの値を返すようですが、より良いアクセサーがありますか?

ありがとう!

役に立ちましたか?

解決

HtmlHelper.BeginForm()がアクションとコントローラーを自動的に満たす方法は、 Request.RawUrl を使用することです。だからあなたは書くことができます:

<form action="<%= Request.RawUrl %>" method="post" enctype="multipart/form-data">
    ....
</form>

他のヒント

これは私がやったことです

最初の完全なビュー:

 <% using (Html.BeginForm("Edit", "Admin",FormMethod.Post, 
              new { enctype = "multipart/form-data" })){%>
            <% Html.RenderPartial("MerchandiseEditDetail", Model); %>
   <%}%>>

2番目のフルビュー:

 <% using (Html.BeginForm("Create", "Admin",FormMethod.Post, 
       new { enctype = "multipart/form-data" })){%>
    <% Html.RenderPartial("MerchandiseEditDetail", Model); %>
<%}%>

私はまだより良い解決策を探していますが、これは今のところ私の問題を部分的に解決します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top