Вопрос

У меня есть форма, которая является частью частичного представления, и мне нужно отправить ее в другое место в зависимости от контекста представления, содержащего форму.Я не могу использовать Html.BeginForm, потому что форма имеет тип шифрования multipart/form-data, поэтому автоматическое заполнение действия недопустимо.

Есть ли простая переменная, которую я могу вызвать, чтобы заполнить текущий контроллер/действие в качестве действия моей формы?Я вижу, что ViewContext.RouteData.Values["action"], ViewContext.RouteData.Values["controller"] вернет эти значения, но есть ли лучший метод доступа?

Спасибо!

Это было полезно?

Решение

Путь HtmlHelper.BeginForm() заполняет действие и контроллер автоматически с помощью Request.RawUrl.Итак, вы можете просто написать:

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

Другие советы

Это то, что я сделал

первый полный просмотр:

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

второй полный вид:

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

Я все еще ищу лучшее решение, но на данный момент это частично решает мою проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top