ASP.NET MVC — неявное действие формы
-
05-07-2019 - |
Вопрос
У меня есть форма, которая является частью частичного представления, и мне нужно отправить ее в другое место в зависимости от контекста представления, содержащего форму.Я не могу использовать 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); %>
<%}%>
Я все еще ищу лучшее решение, но на данный момент это частично решает мою проблему.