0

在 ASP.NET MVC3 C# 中,我想使用此签名进行操作:

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

我无法弄清楚如何通过用户操作从视图中正确调用此操作。是否可以从视图中传递这样的类型?

也许类似于:

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

也许签名可以在保留功能的同时改变?

4

1 回答 1

2

不,开箱即用是不可能的。它归结为路由代码不是通用类型感知的。泛型类型在内部存储的方式与它们在代码中表示的方式大不相同,因为此类方法名称的比较方式不同。

如果您编写自己的扩展点,这可能是可能的,但代码可能存在其他不期望出现这种行为的问题。您还必须编写许多自己的辅助方法,而不是使用现有的。

简而言之,在我看来,这不值得尝试。

于 2012-04-12T20:36:47.280 回答