【问题标题】:Access Class library from MVC project?从 MVC 项目访问类库?
【发布时间】:2009-07-13 19:23:24
【问题描述】:

我在一个解决方案中有一个类库项目和 MVC 项目。

我的类库有命名空间 MyStuff.Classes

我的 MVC 项目有命名空间 MyStuff.Web

我似乎无法直接或使用 using 指令从 mvc 项目访问我的类库,反之亦然??

在这种情况下使用命名空间的最佳方式是什么?一般来说?欢迎任何提示。

谢谢

【问题讨论】:

    标签: visual-studio-2008 namespaces


    【解决方案1】:

    您需要添加对您的 Class 项目的引用

    如果您在 MVC 项目中右键单击引用,请点击Projects 选项卡以轻松添加对您的 Class 项目的引用。

    【讨论】:

    • 谢谢,我显然没想到!
    【解决方案2】:

    这取决于您希望在 MVC 项目中的哪个位置访问此类库。首先,您需要添加对类库的项目引用。从模型或控制器访问它应该是微不足道的。

    为了在视图中访问它,您需要将以下内容添加到您的 web.config:

    <pages>
      <namespaces>
        <add namespace="MyStuff.Classes"/>
      </namespaces>
    </pages>
    

    然后你可以强输入你的视图:

    <%@ Page Language="C#" 
             MasterPageFile="~/Views/Shared/Site.Master" 
             Inherits="System.Web.Mvc.ViewPage<MyStuff.Classes.MyClass>" %>
    

    【讨论】:

      【解决方案3】:

      如果你已经在你的MVC项目中引用了类库,你可能会得到如下错误:

      由于循环依赖错误,无法添加对项目的引用

      如果您尝试在类库中引用 MVC 项目。您将无法将该项目添加为对您的项目的引用。原因在这里解释:Cannot add reference to project because of a circular dependency error

      您可以将其添加到 MVC 项目中,而不是将类添加到类库项目中。那么你所要做的就是添加:

      using MyStuff.Classes; //Or the name of your class being referenced
      

      您现在可以使用类库中的类。

      这是我必须做的,以便在我的类库项目中引用一个类,这样我就可以使用数据类型“HttpPostedFileBase”,因为我不能在我的类库中使用“System.Web.Abstractions”(@987654322 @)。

      如果有人遇到这种奇怪的情况,我希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2017-07-04
        • 2010-11-23
        • 1970-01-01
        • 2013-09-30
        • 2014-03-18
        • 2015-12-27
        • 2012-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多