2011-01-27 69 views
0

假設您有一個用於編輯三明治名稱,價格等的MVC視圖。此表單有其自己的「提交」按鈕。提交表單時,將調用編輯POST操作,更新三明治,並重新加載視圖。ASP.NET MVC視圖中的多個表單以及路由問題

然後在相同的視圖中,在三明治編輯窗體下面,我們有一個下拉菜單,旁邊有一個Add按鈕。如何將添加成分表單發佈到其他操作,但是然後重新加載編輯視圖?

RedirectToAction(「Edit」)會在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)); 
    } 

這裏是RedirectToAction後的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. 
+0

「RedirectToAction(」Edit「)在URL中放了很多垃圾」..你可以發佈一個「垃圾」的例子嗎? – Chandu 2011-01-27 23:56:11

+0

與垃圾編輯:) – Blackcoil 2011-01-28 00:16:27

回答

0

之所以你在你的url中獲得「垃圾」是因爲你將LoginEditViewModel傳遞給了編輯操作。 .Net正在嘗試將對象轉換爲名稱,以便它可以將它傳遞給參數。這就是爲什麼你看到Web.Data.Entities .......

你的編輯控制器是什麼樣的?

如果它是這樣的:

public ActionResult Edit(int id) 

然後您重定向到行動應該是這樣的:

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

而不是通過你的視圖模型。