2010-03-31 106 views
1

我使用jQuery發佈一個ID來我的路線,例如:
http://localhost:1234/Load/Delete
與POST參數ID = 1ASP.NET MVC之後的參數進的RouteData

我只使用默認在Global.asax.cs中的路由現在:

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = "" } 
); 

當我進行後,在我的ActionFilter filterContext.RouteData.Values["Id"]設置爲""默認值。理想情況下,如果URL帶有"",我希望它自動使用POST參數值。我知道它是正確張貼,因爲我可以在filterContext.HttpContext.Request.Params["Id"]看到的"1"值。

是否有一種方式來獲得的RouteData使用POST參數作爲一個回落的價值?

回答

1

您可以隨時添加不使用該參數另一條路線。我在我的ASP.Net MVC書中有一個例子。當我回家:)

但我建議重命名id來的ObjectId爲清楚起見,無論是在路線或在您的jQuery呼叫者我會及時更新。

找不到參考,但是從它的外觀最好的辦法是改變實體的id名稱。大多數ASP.Net MVC的文章建議使用ConferenceId,PERSONID等

+0

所以我試圖改變之後的參數來LoadId = 1,但仍值出現在我的Request.Form [「LoadId」],而不是在RouteData.Values [ 「LoadId」]。當它是一個POST的值時,有沒有辦法讓它進入RouteData? – DavGarcia 2010-04-01 20:14:33

+0

如果它不在URL(即路由)中,爲什麼它會在你的RouteData中?當它是POST值時,它應該是控制器操作的參數。 – 2010-04-02 03:53:36