2012-04-12 20 views
0

在ASP.NET MVC3 C#,我想和這個簽名的動作:如何製作一個適當調用使用泛型的動作的表單?

public ActionResult Restore<T>(int entityId, string redirect) where T : class 

我無法弄清楚如何正確地從視圖中通過用戶操作調用這個動作。是否有可能從視圖中傳遞類似的類型?

也許類似的東西:

@using (Html.BeginForm("Restore", "Global", new { T = @m })) 

也許在保留功能的簽名會改變嗎?

回答

2

不,開箱即可做到這一點。它歸結爲路由代碼不是通用類型感知。泛型類型在內部存儲與代碼中表示的內容大不相同,因爲這種方法名稱不會以相同的方式進行比較。

如果您編寫了自己的擴展點,這可能是可能的,但可能會出現其他代碼問題,而這些問題不會導致此行爲。你也必須編寫許多你自己的幫助器方法,而不是使用現有的方法。

總之,在我看來這不值得嘗試。

+0

好的,所以以這種方式使用泛型是不可能的。如果我將模型對象傳遞給動作,該怎麼辦? – 2012-04-12 20:40:23

+0

@TravisJ - 我不明白。什麼模型對象?你沒有提供。你究竟在問什麼? – 2012-04-12 20:42:03

+0

在視圖中,視圖模型會有一個對象 - 讓我們調用它的Box(@ m.Box)。我可以將該對象傳遞給動作。我正在嘗試針對一些基本的重複性粗暴操作進行全球行動。 – 2012-04-12 20:44:09

相關問題