2011-05-27 59 views
0

嗨,我建立一個asp.net的MVC網站asp.net mvc routedata返回我怪異的東西?

我定義了一個自定義路由

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

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

    } 

我有一個基本的控制器,這是否

 protected override void Initialize(RequestContext requestContext) { 

     foreach (var d in requestContext.RouteData.Values) { 
      Debug.WriteLine(d.Key);//here key country returns me favicon.ico 
      Debug.WriteLine(d.Value); 
     } 
     this.DBConnCountryCode = requestContext.RouteData.Values["country"].ToString() + "m"; 
     ViewData["country"] = this.DBConnCountryCode; 
     Debug.WriteLine(ViewData["country"]); 
     base.Initialize(requestContext); 
    } 

所以基本上我想在URL中的國家代碼如:

http://mysite/uk/Mobile我想獲得「英國」 但它返回我favi con.ico?什麼是favicon.ico?爲什麼RouteData.Values [「country」]返回我favicon.ico ??

回答

1

favicon.ico是顯示在您的URL欄和標籤左側的小圖標。在MVC中,當瀏覽器尋找你的favicon.ico並找不到它時,你會發現一些奇怪的事情。

將此行代碼添加到其他忽略路由下方,以忽略favicon.ico請求。

routes.IgnoreRoute("favicon.ico"); 
+0

謝謝本,它的工作! – walter 2011-05-27 05:32:25