如题,怎么在ASP.NET MVC基架的列表模板中获取到当前数据模型类型。能够获取到类型全名也可以。
http://stackoverflow.com/questions/28063731/how-to-get-model-type-in-microsoft-aspnet-scaffolding-list-cs-t4
<#@ parameter type="System.String" name="ViewDataTypeName" #> <#@ parameter type="System.String" name="ViewDataTypeShortName" #> <#@ parameter type="System.Boolean" name="IsPartialView" #> <#@ parameter type="System.Boolean" name="IsLayoutPageSelected" #> <#@ parameter type="System.Boolean" name="ReferenceScriptLibraries" #> <#@ parameter type="System.Boolean" name="IsBundleConfigPresent" #> <#@ parameter type="System.String" name="ViewName" #> <#@ parameter type="System.String" name="LayoutPageFile" #> <#@ parameter type="System.String" name="JQueryVersion" #> <#@ parameter type="Microsoft.AspNet.Scaffolding.Core.Metadata.ModelMetadata" name="ModelMetadata" #>
根据模板中提供的参数,冒似还真没法获取类型全名,只提供了类型名。。。
对的,这个是无解的,我已经放弃了这种模式。
用propertyinfo能解决么?
不行,翻遍了貌似是无解。准备放弃这种方式了。
@Model.GetType(); 得到 System.Collections.Generic.List`1[XXX.Manager.Services.Base.ProductInfo];
@Model[0].GetType(); 得到XXX.Services.Base.ProductInfo;
不知道是不是你想要的
你理解错了。我是需要在T4模板中用T4语法中获取到实体类型,以便于代码生成,而不是在View里面。从目前来看,应该是不可行的。