ASP.NET MVC - 隐式表单操作

时间:2009-07-30 01:21:03

标签: asp.net-mvc asp.net-mvc-routing html-helper

我有一个表单是部分视图的一部分,我需要根据包含表单的视图的上下文将其提交到不同的位置。我不能使用Html.BeginForm,因为表单有一个multipart / form-data enctype,所以自动填充的动作就出了门。

我可以调用一个简单的变量来填充当前控制器/动作作为我的表单操作吗?我看到ViewContext.RouteData.Values [“action”],ViewContext.RouteData.Values [“controller”]将返回这些值,但是有更好的访问者吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用HtmlHelper.BeginForm() Request.RawUrl自动填充操作和控制器的方式。所以你可以写:

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

答案 1 :(得分:0)

这就是我做的事情

第一个完整视图:

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

我仍然在寻找更好的解决方案,但这暂时解决了我的问题。