MVC 3.0 Maproute编码
我正在写一个新的MVC应用程序; 我想对路由进行一些更改以将部门名称添加到URL。
以下是由VS 2012生成的内容。
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute( _
name:="Default", _
url:="{controller}/{action}/{id}", _
defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
)
我想在路径的开头传递部门名称。 恩。
http:// localhost:/ hr / Home / Contact
http:// localhost / hr / Home / About
http:// localhost / finance / Home / Contact
http:// localhost / finance / Home / About
http:// localhost / marketing / Home / Contact
http:// localhost / marketing / Home /关于
而不是默认页面:
http:// localhost / Home /关于http:// localhost / Home / Contact
这应该是非常简单的; 将department
添加到路线的开始处:
routes.MapRoute( _
name:="DepartmentRoute", _
url:="{department}/{controller}/{action}/{id}", _
defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
)
您可能还想添加一个约束来确保它只匹配部门名称:
constraints:=New With { .department = @"[hr|finance|marketing]" }
有一种方法可以在URL中包含部门名称。 一种方法是使用属性RouteData.Values,如下所示:
string department = RouteData.Values["department"];
另一种方式更优雅。 如果我们使用与URL模式变量匹配的名称为我们的action方法定义参数,那么MVC框架会将从URL获得的值作为参数传递给action方法。
public ViewResult Index(string department) {
ViewBag.Department = department;
return View();
}
链接地址: http://www.djcxy.com/p/57855.html