如何在ASP中配置路由?MVC在url中有更多的动作
本文关键字:url ASP 配置 路由 MVC | 更新日期: 2023-09-27 18:18:37
我正在开发的MVC,我需要在url中有多个动作。
这是一个例子
BaseUrl/Release/1/Milestone/5/Feature/4
我如何配置路由和动作方法来实现这一点?
在这种情况下,我期望在ReleaseController中的动作Milestone是被调用的,具有三个输入id:
public class ReleaseController : Controller
{
public ActionResult Milestone(int releaseID, int actionID, int secondaryID)
{
...
}
}
编辑:谢谢你@Mati Cicero给我指出了正确的方向。我遵循他的解决方案,使url更加"动态"。这是我最后的代码,也许对其他人也有用:
routes.MapRoute(
name: "ReleaseSection",
url: "Release/{releaseId}/{action}/{actionID}/{subAction}/{thirdID}",
defaults: new
{
controller = "Release",
action = "Index",
releaseId = UrlParameter.Optional,
actionID = UrlParameter.Optional,
subAction = UrlParameter.Optional,
thirdID = UrlParameter.Optional
}
);
public ActionResult Milestone(int? releaseId, int? actionID, string subAction, int? thirdID)
{
...
}
我没有测试这个,但是你试过下面的路线吗?
Url: BaseUrl/Release/{releaseID}/Milestone/{actionID}/Feature/{secondaryID}
Defaults: new { controller = "Release", action = "Milestone" }
约束: new { releaseID = "''d+", actionID = "''d+", secondaryID = "''d+" }
MVC引擎应该把路由段映射到你的动作的参数