在我的ASP.NET MVC 5应用程序中,我有一个名为Manage的区域。
我目前正在使用此区域的默认路线:
context.MapRoute(
"Manage_default",
"Manage/{controller}/{action}/{id}",
new { controller="Home", action = "Index", id = UrlParameter.Optional }
);
我遇到的问题是当对动作使用其他参数时,它们不受约束。例如,Sites控制器的MonthlyStats操作定义为public ActionResult MonthlyStats(int id, DateTime? month)
,但是当点击/Manage/Sites/MonthlyStats/138/?month=2015-02-01
时,月份始终为空。
/ Sites / MonthlyStats /最近才被移动到管理区域,在此之前它完美地运行了。
在RouteDebugger中查看,在RouteData集合中永远不会出现month,因为我预期应该是(这里可能是错误的)。
答案 0 :(得分:0)
确保:
虽然路线没有将管理区域解析为路线数据,但似乎有点奇怪。您是直接访问URL还是单击ActionLink?验证您是否正在使用包含路径数据集合中的区域的操作链接。最好直接转到URL以验证它是否正常工作,然后对任何ActionLink进行故障排除。