ASP.NET MVC - Action de formulaire implicite
-
05-07-2019 - |
Question
J'ai un formulaire qui fait partie d'une vue partielle et je dois le soumettre à un emplacement différent en fonction du contexte de la vue contenant le formulaire. Je ne peux pas utiliser Html.BeginForm parce que le formulaire a un enctype multipart / form-data, donc le fait de remplir automatiquement l'action est hors de portée.
Existe-t-il une simple variable que je peux appeler pour renseigner l'action de contrôleur / action en cours comme action de formulaire? Je vois que ViewContext.RouteData.Values ??["action"], ViewContext.RouteData.Values ??["contrôleur"] renverra ces valeurs, mais existe-t-il un meilleur accesseur?
Merci!
La solution
La manière dont HtmlHelper.BeginForm ()
remplit l'action et le contrôleur automatiquement utilise Request.RawUrl
. Pour que vous puissiez simplement écrire:
<form action="<%= Request.RawUrl %>" method="post" enctype="multipart/form-data">
....
</form>
Autres conseils
Voici ce que j'ai fait
première vue complète:
<% using (Html.BeginForm("Edit", "Admin",FormMethod.Post,
new { enctype = "multipart/form-data" })){%>
<% Html.RenderPartial("MerchandiseEditDetail", Model); %>
<%}%>>
deuxième vue complète:
<% using (Html.BeginForm("Create", "Admin",FormMethod.Post,
new { enctype = "multipart/form-data" })){%>
<% Html.RenderPartial("MerchandiseEditDetail", Model); %>
<%}%>
Je cherche toujours une meilleure solution, mais cela résout partiellement mon problème pour le moment.