2010-07-22 204 views
1

我從asp.net的MVC切換1.0〜2.0查詢字符串問題

我actionlinks:

<%=Html.ActionLink("Add bla", "addbla", new { id = Model.Id })%> 

現在產生的URL是這樣的:

addbla/500

,而不是:

addbla/?Id=5008 

,這都與路由做:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); 

      routes.MapRoute(
       "Default",            // Route name 
       "{controller}/{action}/{id}",       // URL with parameters 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
      ); 

我怎樣才能恢復原來的行爲?

謝謝。

基督教

+0

目前的解決方案插入恢復舊行爲除id:路線。 MapRoute(null,「{controller}/{action}」,new {controller =「Home」,action =「Index」}); 之前的其他maproute。仍然不明白爲什麼控制器收到id爲null即使是這樣的網址addbla/500 – cs0815 2010-07-22 13:47:52

回答

0

您可以從圖路線

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}", // URL with parameters 
    new { controller = "Home", action = "Index" } // Parameter defaults 
); 
+0

這就是我上面看到我的評論。我仍然不明白爲什麼一個URL bla/33導致我的控制器中id爲空。 – cs0815 2010-07-22 14:06:41

+0

我沒有看到您的評論,但我的想法是替換您的MapRoute,而不是之前插入它。 替換MapRoute,bla/33因爲沒有控制器bla和動作33而無法工作。它只能在bla工作嗎?Id = 33 在另一個之前插入MapRoute(更通用並帶有id)我的測試。 – Caline 2010-07-22 14:38:08

0

嘗試使用,而不是混合大小寫小寫id。我在轉換過的一個項目中沒有看到這個問題,但我始終使用小寫字母id

+0

我實際上已將其更改爲id中的大寫字母Id。既不可行。將更新問題 – cs0815 2010-07-22 12:27:04