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!

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top