Domanda

Ho un modulo che fa parte di una vista parziale e devo inviarlo in una posizione diversa in base al contesto della vista contenente il modulo. Non riesco a usare Html.BeginForm perché il modulo ha un enctype multipart / form-data, quindi avere l'azione compilata automaticamente è fuori dalla porta.

Esiste una semplice variabile che posso chiamare per compilare il controller / azione corrente come azione del mio modulo? Vedo che ViewContext.RouteData.Values ??[" action "], ViewContext.RouteData.Values ??[" controller "] restituirà quei valori, ma esiste un accessorio migliore?

Grazie!

È stato utile?

Soluzione

Il modo in cui HtmlHelper.BeginForm () riempie l'azione e il controller automaticamente è usando Request.RawUrl . Quindi potresti semplicemente scrivere:

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

Altri suggerimenti

Questo è quello che ho fatto

prima visualizzazione completa:

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

seconda visualizzazione completa:

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

Sto ancora cercando una soluzione migliore, ma questo risolve parzialmente il mio problema per ora.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top