在我正在开发的ASP.MVC中,我需要在网址中有多个操作。
这是一个例子
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指出我正确的方向。我按照他的解决方案制作了更多的动词"动态"。
这是我的最终代码,也许对其他人也有用:
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)
{
...
}
答案 0 :(得分:1)
我没有对此进行测试,但您是否尝试过以下路线?
网址:BaseUrl/Release/{releaseID}/Milestone/{actionID}/Feature/{secondaryID}
默认:new { controller = "Release", action = "Milestone" }
约束:new { releaseID = "\\d+", actionID = "\\d+", secondaryID = "\\d+" }
MVC引擎应该将路径段映射到您的操作参数