如何从控制器中找到(剃刀)视图的模型类型?我知道它们继承自 WebViewPage 和 WebViewPage,仅此而已。
(在 asp.net c# MVC 3 或 4 中)
提前致谢。
编辑用例:允许用户创建/上传/编辑视图和强类型视图,然后用户可以选择其中一个用户创建的视图来显示/编辑数据库中不同类型的数据。
例如,应用程序检索一个对象 Foo,并且有针对 Boo 和 Foo 的强类型视图。我不希望 Boo 的视图显示为 Foo 对象的可能选择。
如何从控制器中找到(剃刀)视图的模型类型?我知道它们继承自 WebViewPage 和 WebViewPage,仅此而已。
(在 asp.net c# MVC 3 或 4 中)
提前致谢。
编辑用例:允许用户创建/上传/编辑视图和强类型视图,然后用户可以选择其中一个用户创建的视图来显示/编辑数据库中不同类型的数据。
例如,应用程序检索一个对象 Foo,并且有针对 Boo 和 Foo 的强类型视图。我不希望 Boo 的视图显示为 Foo 对象的可能选择。
我不知道你为什么要这样做,但你可以这样做
@Model.GetType()
您应该尽量避免视图中出现尽可能多的代码,并将逻辑推送到您的控制器或服务中。
如果您有权访问 a ,则可以通过执行以下IEnumerable<WebViewPage<T>>
操作来获取类型:T
// Assuming 'views' is a IEnumerable<WebViewPage<T>> here.
var validFooViews = views.Where(v =>
v.GetType().GetGenericArguments()[0] == typeof(Foo));