您好我正在构建一个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 ??
答案 0 :(得分:1)
favicon.ico是显示在网址栏和标签左侧的小图标。在MVC中,当浏览器寻找你的favicon.ico并且找不到它时,你会发生一些奇怪的事情。
将这行代码添加到另一个忽略路由下面,以忽略favicon.ico请求。
routes.IgnoreRoute("favicon.ico");