当我尝试基于我的mvc项目之外的模型(在业务层项目中)生成强类型视图时,我没有为View生成代码。因此,例如,我的详细信息页面不会自动生成表格以显示传递给它的模型的详细信息。当模型直接位于我的MVC项目中时,情况并非如此。是否可以拥有一个n层应用程序,并且仍可以为强类型视图生成此代码?
编辑:回答 -
为业务层的命名空间添加一行到views文件夹的web.config中,如此
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="<My business layer namespace>" />
</namespaces>
</pages>
</system.web.webPages.razor>
然后,在创建强类型视图时,代码生成将起作用。
答案 0 :(得分:1)
尝试自定义ViewModel或将命名空间导入页面:
<%@ Import Namespace="Your.Namespace.Here" %>
对于位于web.config
文件夹中的Views
,它看起来也是you may need to add the assembly information。