【发布时间】:2011-03-29 04:01:10
【问题描述】:
给定 ASP.Net MVC 中的强类型视图,是否可以引用用于声明视图的类型参数?
例如,如果一个页面被声明为
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyProject.MyViewModel>" %>
是否可以引用ViewPage<TModel>中的类型参数?
我知道我可以做到Model.GetType(),但我有一个视图模型是从另一个视图模型派生的,并且两者都使用相同的视图。我目前有一条类似
<% if (Model.GetType().IsSubclassOf(typeof(MyViewModel)))
{ %>
检测视图是否用于显示派生模型,但我希望能够在不对typeof(...) 调用进行硬编码的情况下执行此操作。
我想做Model.GetType().IsSubclassOf(typeof(TModel))之类的事情
【问题讨论】:
-
如果没有硬编码
MyViewModel,你会怎么做。即使您可以引用 Type 参数,您仍然会执行if(TModel is typeof(MyViewModel)...类似的操作。如果你真的想走这条路,你可以在变量Type中传递你想要检查的类型。 -
@giddy:我想做一些类似 Model.GetType().IsSubclassOf(typeof(TModel))
标签: asp.net-mvc view type-parameter