2011-05-27 45 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