ASP.. NET MVC路由返回null
本文关键字:返回 null 路由 MVC NET ASP | 更新日期: 2023-09-27 18:02:08
我正在尝试获取以下路由的URL:
RouteTable.Routes.MapRoute(
null,
"cinema",
new
{
Controller = "CinemaListings",
Action = "ShowCinemaLandingPage",
SiteArea = "CinemaTimes",
MainLandingPage = true
});
我尝试了以下方法来生成URL:
<%:Url.Action("ShowCinemaLandingPage", "CinemaTimes", new { SiteArea = "CinemaTimes", MainLandingPage = true})%>
<%:Url.RouteUrl(new { Controller = "CinemaTimes", Action = "ShowCinemaLandingPage", SiteArea = "CinemaTimes", MainLandingPage = true })%>
我也尝试过只使用控制器和动作名称。我得到空返回-我错过了什么?
这不行吗?
<%:Url.Action("ShowCinemaLandingPage", "CinemaListings", new { SiteArea = "CinemaTimes", MainLandingPage = true })%>
从你的代码看来,你把SiteArea
和Controller
的值混淆了。因此,您没有在Url.Action
中提供控制器名称,而是提供了两次SiteArea
(作为第二个参数和额外的路由值)。
很难理解你的路线。首先,你没有给它的名称(传递null,我之前遇到的问题),然后没有占位符在那里。
如果不给它一个控制器,它就不能工作。
<%:Url.Action("ShowCinemaLandingPage", "CinemaTimes", new { SiteArea = "CinemaTimes", MainLandingPage = true})%>
这里你传递的是控制器名,但是因为没有控制器名,所以不会匹配任何路径。
所以我将使用-至少-这个:
RouteTable.Routes.MapRoute(
"GiveMeSomeNameWillYa?",
"{Controller}/{Action}",
new
{
Controller = "CinemaListings",
Action = "ShowCinemaLandingPage",
SiteArea = "CinemaTimes",
MainLandingPage = true
});