ASP.NET MVC - Implizite Form Action
-
05-07-2019 - |
Frage
Ich habe eine form, die Teil einer Teilansicht und ich müssen Einreichen einen anderen Speicherort, basierend auf dem Kontext der Ansicht, das das Formular enthält.Ich kann kein Html.BeginForm, weil die form hat eine multipart/form-data enctype so dass die Aktion automatisch ausgefüllt ist aus der Tür.
Gibt es eine einfache variable, die ich anrufen kann, um füllen in der aktuellen controller/Aktion, wie meine form action?Ich sehe, dass ViewContext.RouteData.Values["action"], ViewContext.RouteData.Values["controller"] zurück, die diese Werte, aber gibt es eine bessere accessor?
Vielen Dank!
Lösung
Der Weg HtmlHelper.BeginForm()
füllt die Aktion und controller automatisch ist mit Request.RawUrl
.So könnten Sie einfach schreiben:
<form action="<%= Request.RawUrl %>" method="post" enctype="multipart/form-data">
....
</form>
Andere Tipps
Dies ist, was ich Tat
erste volle Ansicht:
<% using (Html.BeginForm("Edit", "Admin",FormMethod.Post,
new { enctype = "multipart/form-data" })){%>
<% Html.RenderPartial("MerchandiseEditDetail", Model); %>
<%}%>>
zweite Ansicht:
<% using (Html.BeginForm("Create", "Admin",FormMethod.Post,
new { enctype = "multipart/form-data" })){%>
<% Html.RenderPartial("MerchandiseEditDetail", Model); %>
<%}%>
Ich bin noch auf der Suche nach einer besseren Lösung, aber diese teilweise mein problem zu lösen für jetzt.