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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top