Global.asax и ASP.NET MVC решение Организация - PullRequest
1 голос
/ 03 мая 2010

Я ссылаюсь на эту статью от Джимми Богард

Он предлагает два проекта для организации вашего решения ASP.NET MVC.

В основном один проект для кода и другой для рендеринга

Меня беспокоит файл global.asax.

Джимми предложил отделить global.asax от global.asax.cs и поместить их в два разных проекта

Когда я это сделал, я не смог скомпилировать свое решение.

Я получил эту ошибку: Не удалось загрузить тип «MyProject.Web.Global».

Может кто-нибудь помочь и показать мне, как это решить?

Спасибо

Ответы [ 2 ]

2 голосов
/ 03 мая 2010

Так легко воспроизвести проблему

  • Создание нового приложения 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

Скомпилируйте и запустите


UPDATE

Я нашел, что было не так

в файле global.asax я не указывал новое пространство имен в атрибуте «наследует»

   <%@ Application  Inherits="Project2.Global" Language="C#" %>
2 голосов
/ 03 мая 2010

Не видя ваш код, трудно угадать, в чем именно проблема. При создании проекта MVC разметка Global.asax выглядит примерно так:

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

Чтобы поместить Global.asax.cs в другой проект, вы, вероятно, хотите удалить объявление CodeBehind = "..." из Global.asax, и вам нужно изменить объявление Inherits = "...", чтобы ссылаться на правильное пространство имен и имя класса, как оно определено в Global.asax.cs.

...