如何从控制器中找到(剃刀)视图的模型类型?我知道它们继承自WebViewPage和WebViewPage,就是它。
(在asp.net c#MVC 3或4中)
提前致谢。
编辑 - 用例: 允许用户创建/上传/编辑视图和强类型视图,然后用户可以选择其中一个用户创建的视图来显示/编辑数据库中不同类型的数据。
因此,例如,应用程序检索一个对象Foo,并且有强烈键入Boo和Foo的Views。我不希望Boo的视图显示为Foo对象的可能选择。
答案 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));