ASP.NET:将参数添加到路由会阻止执行操作

ASP.NET:将参数添加到路由会阻止执行操作,asp.net,routes,Asp.net,Routes,我有一个项目,需要在其中一个操作中添加一个新参数。当我将参数添加到路由时,项目停止工作 这就是它工作时的样子 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/

我有一个项目,需要在其中一个操作中添加一个新参数。当我将参数添加到路由时,项目停止工作

这就是它工作时的样子

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id1}/{id2}/{id3}",
            defaults: new { controller = "ControllerName", action = "ActionName", id1 = UrlParameter.Optional, id2 = UrlParameter.Optional, id3 = UrlParameter.Optional }
    );
}
然后添加新参数id4,项目将中断

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id1}/{id2}/{id3}/{id4}",
            defaults: new { controller = "ControllerName", action = "ActionName", id1 = UrlParameter.Optional, id2 = UrlParameter.Optional, id3 = UrlParameter.Optional, id4 = UrlParameter.Optional }
    );
}
我正在使用url

我身体的动作现在没有价值了。如果我取出id4,表单属性action值将返回

编辑1

HTML


在研究了网络之后,我发现了一个解决方案,就是在特定的动作中添加一条新的路线。如果有人有更好的解决方案,请为寻求帮助的人写下:)

<div class="row">
    @using (Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { @class = "sky-form" }))
    {
        //more markup and code in here
    }
</div>
<div class="row">
    <form class="sky-form" action="" method="post">
        <!-- More Markup and Code Here -->
    </form>
</div>
public ActionResult MyAction(AClass view)
{
    //code here
}