如何在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)
{
    ...
}

如何在ASP中配置路由?MVC在url中有更多的动作

我没有测试这个,但是你试过下面的路线吗?

Url: BaseUrl/Release/{releaseID}/Milestone/{actionID}/Feature/{secondaryID}

Defaults: new { controller = "Release", action = "Milestone" }

约束: new { releaseID = "''d+", actionID = "''d+", secondaryID = "''d+" }

MVC引擎应该把路由段映射到你的动作的参数