global.asax和ASP.NET MVC解决方案组织

时间:2010-05-02 21:11:00

标签: asp.net asp.net-mvc global-asax

我从Jimmy Bogard

引用这篇文章

他建议组织ASP.NET MVC解决方案的两个项目。

基本上,代码的一个项目和渲染的另一个项目

我关心的是global.asax文件。

Jimmy建议将global.asax与global.asax.cs分开并将它们放在两个不同的项目中

当我这样做时,我无法编译我的解决方案。

我收到此错误:无法加载“MyProject.Web.Global”类型。

有人可以帮忙并告诉我如何解决这个问题吗?

由于

2 个答案:

答案 0 :(得分:2)

如果没有看到您的代码,很难猜出究竟是什么问题。创建MVC项目时,Global.asax标记具有以下内容:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApp.MvcApplication" Language="C#" %>

要将Global.asax.cs放在另一个项目中,您可能希望从Global.asax中删除CodeBehind =“...”声明,并且必须更改Inherits =“...”声明以引用正确的名称空间和类名,因为它在Global.asax.cs中定义。

答案 1 :(得分:2)

重现问题很容易

  • 创建一个新的MVC2应用程序:Web.UI
  • 向解决方案添加一个新的类库类型项目:Web.Code
  • 从Web.UI移动到Web.Code以下内容:
    • 控制器
    • 模型
    • 的Global.asax.cs
  • 在第二个项目中,添加一个引用
    • System.Configuration
    • 的System.Web
    • System.Web.Mvc
    • System.Web.ApplicationSewrvices
    • System.ComponentModel.DataAnnotations
    • System.Web.Routing

编译并运行


<强>更新

我发现了什么问题

在global.asax文件中的

,我没有在“inherits”属性中指出新的命名空间

   <%@ Application  Inherits="Project2.Global" Language="C#" %>