2013-08-18 54 views
1

我面臨路由問題並顯示異常。這是由於什麼時候參數爲空或空白 - 在標題爲空時出現,然後問題。MVC4搜索參數爲空或空白時的路由問題

問題的URL:http:// {} ParentURL /管理/菜單/ AddEdit/299921b2-3d7b-4E0A-B23E-5838f9b78654/1 - 當標題爲空

做工精細的URL:http:// { ParentURL} /管理/菜單/ AddEdit /測試/ 299921b2-3d7b-4E0A-B23E-5838f9b78654/1 - >在這裏測試是標題

context.MapRoute(
        "AdminOperation", 
        "Admin/{controller}/{action}/{title}/{id}/{pageno}", 
        new { action = "AddEdit", id = UrlParameter.Optional, pageno = UrlParameter.Optional, title = UrlParameter.Optional } 
       ); 

//控制器方法

​​

請幫我它。

問候

+0

可以告訴你你的控制器代碼? – ssilas777

+0

新增控制器方法 – dotnetexpert

+0

標題在「問題URL」中不會爲空白,它將被綁定到「299921b2-3d7b-4e0a-b23e-5838f9b78654」。路由佔位符僅根據傳入URL中值的順序進行匹配。你在問如何處理缺失值的錯誤,或者你問爲什麼URL中缺少值? – asymptoticFault

回答

1

如果title有時可能null,在我看來,一個更好的辦法將是route你提到前多加一個route沒有它,並把它:

context.MapRoute(
      "AdminOperationShort", 
      "Admin/{controller}/{action}/{id}/{pageno}", 
     new { action = "AddEdit", id = UrlParameter.Optional, pageno = UrlParameter.Optional}); 


    context.MapRoute(
      "AdminOperation", 
      "Admin/{controller}/{action}/{title}/{id}/{pageno}", 
      new { action = "AddEdit", id = UrlParameter.Optional, pageno = UrlParameter.Optional, title = UrlParameter.Optional } 
         ); 
+0

這裏使用你的方式,它會顯示控制器方法中的標題值,而不是標題需要顯示空白。 – dotnetexpert