MVC2 LogOnModel не найден - PullRequest
       2

MVC2 LogOnModel не найден

0 голосов
/ 05 июля 2010

Так что я работал над приложением MVC2 просто для того, чтобы по-настоящему выучить веревки. Что мне не понравилось в настройке по умолчанию, так это то, что представления, модели и контроллеры были в одной сборке. Это было несложно преодолеть, перенесли оба проекта в другие и перенесли содержимое каждой папки.

Однако теперь пришло время начать играть с ролями пользователей. Я украшаю действие контроллера так:

    [Authorize(Roles = "Admin"), AcceptVerbs(HttpVerbs.Post)]
    public ActionResult EditProject(Guid Id, FormCollection formValues){}

Итак, вот как настроено мое решение;

  • MySolution.Web.Views <- Все aspx / Ascx материал </li>
  • MySolution.Controllers <- Все контроллеры, включая AccountController по умолчанию, который приходит с приложением MVC2 </li>

У меня также есть «AccountModel» по умолчанию в пространстве имен MySolution.Controllers.AccountModels, в котором находится класс LogOnModel. Теперь, когда я запускаю программу и прошу контроллер выполнить действие, которое требует определенной роли (которой я не являюсь), я получаю следующую ошибку:

«Сообщение об ошибке компилятора: CS0234: имя типа или пространства имен« Модели »не существует в пространстве имен« MySolution.Web »(отсутствует ссылка на сборку?)»

В качестве ошибки источника также выделяется следующая строка:

"открытый класс views_account_logon_aspx: System.Web.Mvc.ViewPage, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler"

и комментирует строку и файл ошибки как;

"Исходный файл: c: \ Users \\ AppData \ Local \ Temp \ Временные файлы ASP.NET \ root \ d1b48054 \ 1ce7c091 \ App_Web_logon.aspx.5f83eb8c.mdfplvvy.0.cs"

Итак, я попытался перейти к этому файлу и вручную ввести правильное пространство имен LogOnModel, но каждый раз, когда я запускаю проект, создается новая версия этого файла с неверным расположением воспроизводимого LogOnModel. Очевидно, что в приложении есть что-то, что все еще ищет в исходном местоположении AccountModel, которого больше нет.

Я посмотрел в своем файле web.config и не могу найти нигде, который, по-видимому, ссылается на LogOnModel в пространстве имен MySolution.Web.

Кто-нибудь знает, как я могу сообщить приложению, где сейчас находится LogOnModel?

Фактическое сбой приложения в действии LogOn AccountController:

public ActionResult LogOn()
{
   return View(); // Failing here
}

Так, может, это как-то связано с маршрутизацией? Я не коснулся настройки по умолчанию для файла Global.asax.

1 Ответ

2 голосов
/ 05 июля 2010

Вы ссылались на MySolution.Controllers.AccountModels в своем разделе web.config namespace ? Или используйте директиву Import в aspx, или дайте полное имя в директиве страницы ViewPage<MySolution.Controllers.AccountModels.LogOnModel>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...