3Da*_*ave 7 directory viewengine razor asp.net-mvc-3
VS2010 Ultimate,ASP.NET MVC 3 w/Razor.
我在我的MVC3应用程序中创建了一个自定义视图引擎,允许嵌套区域,如此
~/areas/admin
/marketing
/views
index
/controllers
marketingController
/email
/views
index
...
/controllers
emailController
/templates
/views
index
edit
...
/controllers
templatesControler
Run Code Online (Sandbox Code Playgroud)
等等
这一切都很有效,除了我似乎在不在标准~/areas/area_name/views/myview.cshtml
位置的视图中丢失了智能感知.
有什么建议?
更新
只是在百灵鸟上,我添加了@inherits声明
@inherits System.Web.Mvc.WebViewPage<Namespace.Models.Class>
Run Code Online (Sandbox Code Playgroud)
和intellisense开始工作.然后我删除了该声明,并继续工作.
项目文件中是否有一些设置或告诉Visual Studio应用于打开文件的哪种intellisense,而不是文件扩展名?(如果扩展是所有使用的,我希望它更加一致).
更新2
虽然在我的每个视图文件夹中添加web.config都可以很好地解决问题,但是将razor配置放在根web.config中则不行.
添加所需的system.web.webPages.razor
部分后~/web.config
,
这感觉就像一个VS错误 - 重命名一个文件(但保留适当的扩展名)不应该,据我所知,导致这种行为.我将继续将web.config
每个视图文件夹放在每个视图文件夹中,因为它可以解决问题,但是当我希望这些设置像其他web.config设置一样通过解决方案树传播时,必须弄乱解决方案.
值得注意的是,无论Razor配置位于何处,无论intellesense是否正常工作,该网站都能继续正常运行.
解决了
我被Powers认为(非常快),这是一个已知的问题,在MVC3 RTM和VS2010 SP1中得到纠正.更新我的MVC3安装并添加SP1后问题消失了.
Views文件夹包含一个Web.config文件,该文件为Razor视图设置默认选项,包括默认的基本类型和命名空间,以及启用该@model
指令的自定义主机.
不同文件夹中的Razor视图不会继承此配置.
您需要将此配置添加到Web.config
文件夹中的a:
<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" />
</namespaces>
</pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4549 次 |
最近记录: |