2014-02-28 28 views
0

具體路由我有此URL:用於控制器

http://localhost:3256/publicview/details?username=mvcpro4 

其中工程並返回數據的數據視圖。

,我想成爲這個網址:

http://localhost:3256/publicview/details/mvcpro4 

它不工作,當它到達控制器的用戶名參數爲空。

我該如何配置publicview路由,因此它不會中斷默認路由。

我有這些路線。

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
       "publicview", 
       "publicview/details", 
       new { controller = "publicview", action = "details" } 
      ); 

      routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{action}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 

      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
     } 

回答

1

幾乎就像你已經

routes.MapRoute(
      "publicview", 
      "publicview/details/{userName}", 
      new { controller = "publicview", action = "details", userName=UrlParamter.Optional } 
     ); 

確保您撥打字符串參數username您的詳細信息行動,以便它填充。

或者你可以刪除上述路徑和參數變更爲ID在你的細節操作,以便它使用標準路線

小心的在url特殊字符,或.NET運行時會揭開序幕,並拋出在你的例外。

http://blogs.iis.net/nazim/archive/2011/04/18/use-of-special-characters-like-in-an-iis-url.aspx