2017-01-23 26 views
0

我有一個項目需要將新參數添加到其中一個操作。當我將參數添加到路線時,該項目停止工作。ASP.NET:向路由添加參數將停止BeginForm的行動

這是它工作時的樣子。

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 } 
    ); 
} 

我正在使用網址http://localhost:58481/ControllerName/ActionName/1234567/123456789

我現在的表單行爲沒有任何價值。如果我將id4取出,表單屬性操作值將返回。

編輯1

HTML

<div class="row"> 
    @using (Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { @class = "sky-form" })) 
    { 
     //more markup and code in here 
    } 
</div> 

SOURCE

<div class="row"> 
    <form class="sky-form" action="" method="post"> 
     <!-- More Markup and Code Here --> 
    </form> 
</div> 

行動

public ActionResult MyAction(AClass view) 
{ 
    //code here 
} 

回答

0

研究網後,我foun d解決方案是添加一條新路線到特定的行動。如果有人有更好的解決方案,請寫下來尋求:)