ASP.NET MVC - implícita Ação Form
-
05-07-2019 - |
Pergunta
I tem uma forma que é parte de uma vista parcial e preciso enviá-lo para um local diferente com base no contexto da vista contendo o formulário. Eu não posso usar Html.BeginForm porque o formulário tem um enctype multipart / form-data para ter a ação preenchidos automaticamente está fora da porta.
Existe uma variável simples eu posso chamar para preencher o atual controlador / ação como minha ação de formulário? Vejo que ViewContext.RouteData.Values ??[ "ação"], ViewContext.RouteData.Values ??[ "controller"] retornará esses valores, mas existe um acessor melhor?
Obrigado!
Solução
A forma HtmlHelper.BeginForm()
enche a ação e controlador de automaticamente é usando Request.RawUrl
. Então, você poderia simplesmente escrever:
<form action="<%= Request.RawUrl %>" method="post" enctype="multipart/form-data">
....
</form>
Outras dicas
Este é o que eu fiz
primeira visão completa:
<% using (Html.BeginForm("Edit", "Admin",FormMethod.Post,
new { enctype = "multipart/form-data" })){%>
<% Html.RenderPartial("MerchandiseEditDetail", Model); %>
<%}%>>
segunda visão completa:
<% using (Html.BeginForm("Create", "Admin",FormMethod.Post,
new { enctype = "multipart/form-data" })){%>
<% Html.RenderPartial("MerchandiseEditDetail", Model); %>
<%}%>
Eu ainda estou procurando uma solução melhor, mas isso resolver parcialmente o meu problema para agora.