[英]ASP.NET MVC 3 Routing Structure
ASP.NET MVC 3路由让我很困惑。 我觉得我已经读完了所有的东西,但有时候,我仍然没有得到它。 我正在尝试创建一个我可以访问的URL
/authorized/home/children/{childID}
我希望该URL显示加载特定子项内容的HTML视图。 我的观点定义如下:
/Views/Authorized/Home/Children/Child.cshtml
在我的global.asax.cs文件中,我添加了以下路由:
routes.MapRoute(
"Child", // Route name
"{controller}/Home/Children/{action}/{id}",
new { controller = "Authorized", action = "Child", id = UrlParameter.Optional }
);
在AuthorizedController.cs中,我有以下内容:
public ActionResult Child(string id)
{
return View("~/Views/Authorized/Home/Children/Child.cshtml");
}
如果我访问/授权/ home / children,我会看到Child.cshtml的内容。 但是,如果我访问/授权/ home / children / 1,我会得到404。
我究竟做错了什么? 谢谢
您分享的路线与您说的想要的路线不符。
你要:
/authorized/home/children/{childID}
但是,你的路线是期待的:
/Authorized/Home/Children/{action}/{id}
请注意那里的附加操作参数。 孩子是你在控制器中的动作,还是孩子? 如果是孩子,你应该更新你的路线:
routes.MapRoute(
"Child", // Route name
"{controller}/Home/{action}/{id}",
new { controller = "Authorized", action = "Children", id = UrlParameter.Optional }
);
但是,如果它是Child,你需要从你的路线中移除{action},如下所示:
routes.MapRoute(
"Child", // Route name
"{controller}/Home/Children/{id}",
new { controller = "Authorized", action = "Child", id = UrlParameter.Optional }
);
这将是一个明确的路线,指向Child动作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.