如何在View本身中找出View模型的类型?
我尝试拨打GetType
:
@model MyModel
<div>@Model.GetType()</div>
除非Model
为空,否则有效,在这种情况下,我得到NullReferenceException
。
不幸的是,它也无法做到
@model MyModel
<div>@typeof(TModel)</div>
因为TModel
在Razor视图的上下文中不可用。
答案 0 :(得分:4)
尝试:
@ViewData.ModelMetadata.ModelType
判断模型的值是否为null,并且它是内置的。不需要创建帮助器。
答案 1 :(得分:1)
这样做的一种方法是在HtmlHelper<TModel>
public static class HtmlHelperExtensions
{
public static Type GetModelType<TModel>(this HtmlHelper<TModel> helper)
{
return typeof(TModel);
}
}
然后你可以这样使用
@using HtmlHelperExtensions
@model MyModel
<div>@Html.GetModelType()</div>
答案 2 :(得分:0)
您可以先检查它是否为空,然后获取类型,即:
@if(Model != null) {
<div>@Model.GetType()</div>
}