我已经搜索了Stackoverflow上的主题,但到目前为止还没有回答这个问题。
我的解决方案中有两个项目: a)MVC应用程序b)类库。
类库充当插件,因此它包含视图。主要问题是我在类库中包含的类的视图标记中没有智能感知(与视图相同的程序集)。
一开始我甚至不能写<%= Html.RenderAction ...%>。我已经通过将Web.config文件添加到类库中来解决了这个问题,其中包含以下部分:
<configuration>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
</system.web>
现在它在视图的标记中识别Html.RenderAction等。但是我不知道如何访问(使用intellisense)我的类包含在与视图相同的程序集中:(
亲切的问候, 的Jakub
答案 0 :(得分:2)
配置中有一个单独的命名空间列表,您需要包含自定义命名空间。下面的示例演示了在简化的web.config中添加命名空间。如果仍然无效,请确保您的项目和webconfig具有对其他程序集的正确引用。
<configuration>
<pages>
<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="System.Linq"/>
<add namespace="System.Collections.Generic"/>
<add namespace="Blog.Models"/> <!-- These are my custom namepaces -->
<add namespace="Blog.Views"/>
</namespaces>
</pages>
</configuration>
答案 1 :(得分:0)
Spark viewengine作为同一问题,请参阅their documentation。基本上他们说'制作一个Web应用程序项目',并以其他方式将其视为类库。在Spark中为我工作过,也许它也可以在你的情况下工作?
答案 2 :(得分:-1)
开箱即用,MVC不支持多个项目。查看我之前的问题以获取更多详细信息。