Asp.net mvc 3 ASP.NET MVC 3.0 Url重写
我在家庭控制器中有一个名为“联络”的动作Asp.net mvc 3 ASP.NET MVC 3.0 Url重写,asp.net-mvc-3,url-rewriting,Asp.net Mvc 3,Url Rewriting,我在家庭控制器中有一个名为“联络”的动作 <mysite>/Home/Contact 路线逻辑: var route = routes.MapRoute("new", "Contact"); routes.Redirect(r => r.MapRoute("old", "Home/Contact")) .To(route); 更新 好的,首先应该定义自定义路由,现在它正在工作(对于自定义路由),但是出现了一个新问题为什么
<mysite>/Home/Contact
路线逻辑:
var route = routes.MapRoute("new", "Contact");
routes.Redirect(r => r.MapRoute("old", "Home/Contact"))
.To(route);
更新
好的,首先应该定义自定义路由,现在它正在工作(对于自定义路由),但是出现了一个新问题为什么路由魔法返回错误:
Server Error in '/' Application.
Value cannot be null or empty.
Parameter name: controllerName
你试过iis7中的重写模块吗
它很容易使用,请不要从这里下载:
定义路由时,确保新路由出现在默认路由之前(因为它也将匹配)
routes.MapRoute(
"Contact", // Route name
"contact", // URL with parameters
new { controller = "Home", action = "Contact", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Contact", id = UrlParameter.Optional } // Parameter defaults
);
我看到了,但是最好使用MVC路由的默认优势。@Joper-默认路由应该是最后添加的路由,以便首先匹配任何特定路由。您可能知道为什么RouteMagic在这种情况下返回错误的值不能为null或空。参数名称:controllerName'
routes.MapRoute(
"Contact", // Route name
"contact", // URL with parameters
new { controller = "Home", action = "Contact", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Contact", id = UrlParameter.Optional } // Parameter defaults
);