[MVC]將Route參數自動帶往其他Action

[MVC]將Route參數自動帶往其他Action

前言


    在開發ASP.NET MVC時只要導頁超過2層網頁時,在參遞時就要顧慮到如何將上頁傳進來的參數如何再往下帶

,例:config-->config/a-->config/a/b 在第二個到第三個網頁,撰寫時就會如 下紅字,需要帶上頁的參數

@Html.ActionLink("新增", "Create", ,new { id= ViewContext.RequestContext.RouteData.Values["id"],id2="b"})

 

 

問題

   在撰寫上每個View都要去考慮到是否有上一頁的參數,這是很不理想的寫法,因View本就不應該去管

這種瑣事,且若改天上一頁的參數再多幾個出來,那全部的View都要再改一次…..。

 

 

解決方法

   個人測出來的懶人招,修改Global.asax的Route參數,將參數放在{action}前 例:{system}/{action} 如下圖

clip_image001

這樣第二層View的ActionLink就不需要自行再設定{system}的參數。

 範例說明:

{system}=config,{action}=project ,目前Url則等於 /config/Project

導往下一頁的ActionLink= @Html.ActionLink("新增", "Create")
到下一頁後,Url此時等於 config/Project/Create

config 是自行帶出.