ASP.NET MVC - неявное действие формы - PullRequest
1 голос
/ 30 июля 2009

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

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 30 июля 2009

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

<form action="<%= Request.RawUrl %>" method="post" enctype="multipart/form-data">
    ....
</form>
0 голосов
/ 30 июля 2009

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

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

 <% 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); %>
<%}%>

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

...