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

我可以调用一个简单的变量来填充当前控制器/动作作为我的表单操作吗?我看到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