[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} 如下圖
這樣第二層View的ActionLink就不需要自行再設定{system}的參數。
範例說明:
{system}=config,{action}=project ,目前Url則等於 /config/Project
導往下一頁的ActionLink= @Html.ActionLink("新增", "Create")
到下一頁後,Url此時等於 config/Project/Create
config 是自行帶出.