ASP.NET MVC 2 - 单独汇编中的视图 - 无智能感知

时间:2010-02-17 00:11:40

标签: asp.net asp.net-mvc asp.net-mvc-2

我已经搜索了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

3 个答案:

答案 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不支持多个项目。查看我之前的问题以获取更多详细信息。