在ASP.NET MVC3 C#中,我想要使用此签名进行操作:
public ActionResult Restore<T>(int entityId, string redirect) where T : class
我无法弄清楚如何通过用户操作从视图中正确调用此操作。是否可以从视图中传递类似的类型?
或许类似于:
@using (Html.BeginForm("Restore", "Global", new { T = @m }))
在保留功能的同时签名可能会改变吗?
答案 0 :(得分:2)
不,开箱即用是不可能的。它归结为路由代码不是通用类型感知。内部存储的泛型类型与代码中表示的不同,因为这些方法名称不会以相同的方式进行比较。
如果您编写了自己的扩展点,则可能会出现这种情况,但代码中可能存在其他问题,而这些问题不会出现这种情况。您还必须编写许多自己的辅助方法,而不是使用现有方法。
简而言之,我认为不值得尝试。