我希望这是在MVC 4中编写路线的更好方法,并希望得到一些反馈。
如果下面的路由模式是在MVC 4中执行此操作的最佳方式,您能告诉我吗?
我的应用程序需要以下列格式显示网址。
http://domain.com/777-777-7777-777-7777/Page1
http://domain.com/777-777-7777-777-7777/Page2
777-777-7777-777-7777是一个帐号。 PageX是报告页码。
我试图避免在我的项目中丢弃其他控制器路由。 以下是我尝试但需要反馈,如果这将废弃未来的控制器。
报告编号加页面路线
routes.MapRoute(
"Report", // Route name
"{AccountNumber}/{ReportPage}",
new { controller = "Report", action = "Navigate", AccountNumber = UrlParameter.Optional, ReportPage = UrlParameter.Optional});
未来控制器我不想丢弃。
routes.MapRoute(
"FutureController", // Route name
"FutureController/{action}/{id}",
new { controller = "FutureController",id= UrlParameter.Optional});
感谢任何反馈。
答案 0 :(得分:0)
我相信您的路线没问题。它不会打破目前的设置。编写路径时唯一要记住的是,您首先放置更多特定路径,因为它们按顺序处理,并且第一个匹配路由由url引擎选取。但我必须说,您的ReportPage
参数将包含page1
和page1
之类的值,而不是数字1或2.我看到有人编写规则,其中只有数字部分会在行动中收到结果。据我所知,它就像是
routes.MapRoute(
"Report", // Route name
"{AccountNumber}/page{ReportPage}",
new { controller = "Report", action = "Navigate", AccountNumber = UrlParameter.Optional, ReportPage = UrlParameter.Optional},new{ReportPage = "\d+"});
这样您就会有http://domain.com/account/page1
之类的网址,但在操作方法中,您会收到ReportPage
参数的数值。但是,当页码不存在时,它将不匹配。在这种情况下,您可以添加另一条路线,例如回答this question