我有必要使用ActionLink的鏈接到安編輯屏幕爲我的ViewModel A.MVC動態routeValues爲ActionLinks
A具有複合鍵,所以鏈接到它的路由值必須有3 pramaters,像這樣:
<%: Html.ActionLink("EDIT", "Action", "Controller",
new { area = "Admin", Id1= 1, Id2= 2, Id3= 3 })%>
正如你可以看到,路由值包含了控制器的行動將接受的ID。
我希望能夠從一個輔助函數生成的路徑值,如:
public static Object GetRouteValuesForA(A objectA)
{
return new
{
long Id1= objectA.Id1,
long Id2= objectA.Id2,
long Id3= objectA.Id3
};
}
然後在ActionLink的助手使用它,但我不知道如何傳遞結果在ActionHelper
objectA = new A(){Id1= objectA.Id1,Id2= objectA.Id2,Id3= objectA.Id3};
....
<%: Html.ActionLink("EDIT", "Action", "Controller",
new { area = "Admin", GetRouteValuesForA(objectA) })%>
但是,這將需要控制器動作接受匿名類型,而不是3個屬性
的名單,我看到下面的鏈接,合併這是匿名類型,但有沒有其他方法可以做到這一點? Merging anonymous types
難道你不能只是作爲你的viewmodel屬性添加值? –
它們是,但我只是想使用該函數來生成路由值,以防A的定義發生變化,就像我需要添加或刪除構成組合密鑰的Ids一樣。這樣,我只需要在一個地方更改參數 – getit
查看我的回答:) –