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

发布于 2024-08-30 22:13:45 字数 450 浏览 5 评论 0原文

我指的是这篇文章 Jimmy Bogard

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

基本上,一个项目用于代码,另一个项目用于渲染

我关心的是 global.asax 文件。

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

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

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

有人可以帮助并告诉我如何解决此问题吗?

谢谢

I am refering to this article from Jimmy Bogard

He is suggesting two projects to organize your ASP.NET MVC solution.

Basically, one project for the code and another for the rendering

My concern is about global.asax file.

Jimmy suggested separating global.asax from global.asax.cs and put them in two differents projects

When I did this, I could not compile my solution.

I got this error : Could not load type 'MyProject.Web.Global'.

Can someone help and show me how to solve this?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

是伱的 2024-09-06 22:13:46

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

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

要将 Global.asax.cs 放入另一个项目中,您可能需要从 Global.asax 中删除 CodeBehind="..." 声明,并且您有更改 Inherits="..." 声明以引用 Global.asax.cs 中定义的正确命名空间和类名。

Without seeing your code it is hard to guess what exactly the problem is. When you create an MVC project the Global.asax markup has something like the following:

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

To put the Global.asax.cs in another project, you probably want to remove the CodeBehind="..." declaration from Global.asax and you have to change the Inherits="..." declaration to reference the correct namespace and classname as it is defined in Global.asax.cs.

○愚か者の日 2024-09-06 22:13:46

重现问题非常容易

  • 创建一个新的 MVC2 应用程序:Web.UI
  • 添加到解决方案,一个新的类库类型项目:Web.Code
  • 从 Web.UI 移动到 Web.Code,如下所示:
    • 控制器
    • 型号
    • Global.asax.cs
  • 在第二个项目中,添加对
    • 系统.配置
    • 系统.Web
    • 系统.Web.Mvc
    • System.Web.ApplicationSewrvices
    • System.ComponentModel.DataAnnotations
    • 系统.Web.路由

编译并运行


UPDATE

出了什么问题

我发现global.asax 文件中,我没有在“继承”属性中指示新的命名空间

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

It is so easy to reproduce the issue

  • Create a new MVC2 application :Web.UI
  • Add to the solution, a new class library type project : Web.Code
  • Move from Web.UI to Web.Code the following:
    • Controllers
    • Models
    • Global.asax.cs
  • In this second project, add a reference to
    • System.Configuration
    • System.Web
    • System.Web.Mvc
    • System.Web.ApplicationSewrvices
    • System.ComponentModel.DataAnnotations
    • System.Web.Routing

Compile and run


UPDATE

I found what was wrong

in global.asax file, I was not indicating the new namespace in the "inherits" attribute

   <%@ Application  Inherits="Project2.Global" Language="C#" %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文