查找强类型剃刀视图(或任何视图)的模型类型

时间:2012-11-28 06:15:36

标签: c# asp.net-mvc

如何从控制器中找到(剃刀)视图的模型类型?我知道它们继承自WebViewPage和WebViewPage,就是它。

(在asp.net c#MVC 3或4中)

提前致谢。

编辑 - 用例: 允许用户创建/上传/编辑视图和强类型视图,然后用户可以选择其中一个用户创建的视图来显示/编辑数据库中不同类型的数据。

因此,例如,应用程序检索一个对象Foo,并且有强烈键入Boo和Foo的Views。我不希望Boo的视图显示为Foo对象的可能选择。

2 个答案:

答案 0 :(得分:1)

我不知道你为什么要这样做,但你可以做到

@Model.GetType()

您应该尽量避免在视图中使用尽可能多的代码,并将逻辑推送到您的控制器或服务中。

答案 1 :(得分:0)

如果您有权访问IEnumerable<WebViewPage<T>>,则可以通过执行以下操作获取T的类型:

// Assuming 'views' is a IEnumerable<WebViewPage<T>> here.
var validFooViews = views.Where(v =>
    v.GetType().GetGenericArguments()[0] == typeof(Foo));