Pregunta

Tengo un formulario que forma parte de una vista parcial y debo enviarlo a una ubicación diferente según el contexto de la vista que contiene el formulario. No puedo usar Html.BeginForm porque el formulario tiene un tipo de archivo multipart / form-data, por lo que tener la acción completada automáticamente está fuera de la puerta.

¿Hay una variable simple a la que puedo llamar para completar el controlador / acción actual como acción de formulario? Veo que ViewContext.RouteData.Values ??[" action "], ViewContext.RouteData.Values ??[" controller "] devolverá esos valores, pero ¿hay un mejor acceso?

¡Gracias!

¿Fue útil?

Solución

La forma en que HtmlHelper.BeginForm () llena la acción y el controlador automáticamente es mediante el uso de Request.RawUrl . Así que puedes escribir:

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

Otros consejos

Esto es lo que hice

primera vista completa:

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

segunda vista completa:

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

Todavía estoy buscando una mejor solución, pero esto soluciona parcialmente mi problema por ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top