asp.net mvc routedata给我带来了奇怪的东西?

时间:2011-05-27 04:37:41

标签: asp.net-mvc asp.net-mvc-routing

您好我正在构建一个asp.net mvc网站

我定义了自定义路线

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);
    }

所以基本上我想在网址中获取国家/地区代码,例如:

http://mysite/uk/Mobile我想得到“英国” 但它返回给我favicon.ico ??什么是favicon.ico?为什么RouteData.Values [“country”]返回给我favicon.ico ??

1 个答案:

答案 0 :(得分:1)

favicon.ico是显示在网址栏和标签左侧的小图标。在MVC中,当浏览器寻找你的favicon.ico并且找不到它时,你会发生一些奇怪的事情。

将这行代码添加到另一个忽略路由下面,以忽略favicon.ico请求。

routes.IgnoreRoute("favicon.ico");