我在家庭控制器中有一个叫做联系人的动作
<mysite>/Home/Contact
我希望能够输入<mysite>/Contact
来获得与<mysite>/Home/Contact
相同的结果
是否可以使用mvc 3.0路由或RouteMagic?
目前我正在努力实现这一点,但没有运气:
自定义路线:
routes.MapRoute(
"Contact", // Route name
"Contact", // URL with parameters
new { controller = "Home", action = "Contact", id = UrlParameter.Optional } // Parameter defaults
);
RouteMagic:
var route = routes.MapRoute("new", "Contact");
routes.Redirect(r => r.MapRoute("old", "Home/Contact"))
.To(route);
更新
好的,首先应该定义自定义路由,现在它正在工作(如果是自定义路由),但是出现了一个新问题why route magic returning error
:
Server Error in '/' Application.
Value cannot be null or empty.
Parameter name: controllerName
答案 0 :(得分:1)
确定新路线在默认路线之前发生(因为它也会匹配)。
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
);
答案 1 :(得分:0)
它易于使用,请从这里开始:
http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/