Asp.net mvc ASP.NET MVC视图中的多个表单以及路由问题

Asp.net mvc ASP.NET MVC视图中的多个表单以及路由问题,asp.net-mvc,Asp.net Mvc,假设您有一个用于编辑三明治的MVC视图:三明治名称、价格等。此表单有自己的提交按钮。提交表单时,将调用“编辑发布”操作,更新三明治,并重新加载视图 然后在同一个视图中,在三明治编辑表单下面,我们有一个成分下拉列表,旁边有一个添加按钮。如何将“添加成分”表单发布到其他操作,然后重新加载“编辑”视图 RedirectToAction(“编辑”)会在URL中放置大量垃圾 以下是我尝试过的一种有效方法,但会在URL中添加垃圾邮件: [AcceptVerbs(HttpVerbs.Post)] pu

假设您有一个用于编辑三明治的MVC视图:三明治名称、价格等。此表单有自己的提交按钮。提交表单时,将调用“编辑发布”操作,更新三明治,并重新加载视图

然后在同一个视图中,在三明治编辑表单下面,我们有一个成分下拉列表,旁边有一个添加按钮。如何将“添加成分”表单发布到其他操作,然后重新加载“编辑”视图

RedirectToAction(“编辑”)会在URL中放置大量垃圾

以下是我尝试过的一种有效方法,但会在URL中添加垃圾邮件:

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult LoginRemoveAssociation(FormCollection values)
    {
        int webUserKey = Int32.Parse(values["WebUserKey"]);
        int associationKey = Int32.Parse(values["AssociationKey"]);
        db.DeleteWebUserAssociation(webUserKey, associationKey);
        return RedirectToAction("LoginEdit", new LoginEditViewModel(webUserKey, true));
    }
以下是重定向操作后URL中的垃圾:

https://localhost/mvc/Admin/Login/382?WebUser=Web.Data.Entities.WebUser&Associations=System.Data.Objects.ObjectQuery`1[Web.Data.Entities.Association]&WebUserAssociations=System.Data.Objects.DataClasses.EntityCollection`1[Web.Data.Entities.WebUserAssociation]&ManagementCompanies=System.Collections.Generic.List`1[Web.Data.Entities.ManagementCompany]&ManagementCompanyList=System.Web.Mvc.SelectList&AccessLevels=System.Collections.Generic.List`1[Web.Data.Entities.AccessLevel]&AccessLevelList=System.Web.Mvc.SelectList&PostMessage=Changes%20saved.

url中出现“垃圾”的原因是您向编辑操作传递了LoginEditViewModel。Net正在尝试将对象转换为名称,以便可以在参数中传递它。这就是为什么你会看到Web.Data.Entities

您的编辑控制器看起来像什么

如果是这样的话:

public ActionResult Edit(int id)
return RedirectToAction("Edit", new { id = 1 });
然后,重定向到操作的方式应该如下所示:

public ActionResult Edit(int id)
return RedirectToAction("Edit", new { id = 1 });

而不是传递视图模型

“RedirectToAction(“Edit”)会在URL中放置大量垃圾”。。你们能发一封“垃圾”的邮件吗?就是这样!谢谢