找不到MVC2 LogOnModel

时间:2010-07-05 14:32:43

标签: asp.net-mvc asp.net-mvc-2

所以我一直在研究MVC2应用程序,只是为了真正学习绳索。我不喜欢默认设置的一件事是视图,模型和控制器在一起组装在一起。这不难克服,移动到不同的项目并迁移每个文件夹内容。

然而,现在是时候开始摆弄用户角色了。我装饰一个像这样的控制器动作;

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

以下是我的解决方案的设置方式;

  • MySolution.Web.Views< - 所有aspx / ascx的东西
  • MySolution.Controllers < - 所有控制器,包括 默认的AccountController来了 使用MVC2应用程序

我在MySolution.Controllers.AccountModels命名空间中也有默认的“AccountModel”,这是LogOnModel类所在的位置。现在,当我运行程序并要求控制器执行需要某个角色的动作时(我不是),我得到以下错误;

“编译器错误消息:CS0234:名称空间'MySolution.Web'中不存在类型或命名空间名称'Models'(您是否缺少程序集引用?)”

它还突出显示以下行作为源错误;

“public class views_account_logon_aspx:System.Web.Mvc.ViewPage,System.Web.SessionState.IRequiresSessionState,System.Web.IHttpHandler”

并将错误的行和文件注释为;

“源文件:c:\ Users \\ AppData \ Local \ Temp \ Temporary ASP.NET Files \ root \ d1b48054 \ 1ce7c091 \ App_Web_logon.aspx.5f83eb8c.mdfplvvy.0.cs”

所以我尝试导航到该文件并手动输入LogOnModel的正确命名空间,但每次运行项目时,都会创建此文件的新版本,并重新生成LogOnModel的错误位置。很明显,应用程序中仍有一些内容仍在查找不再存在的AccountModel的原始位置。

我查看了我的web.config文件,找不到任何似乎引用MySolution.Web命名空间中的LogOnModel的地方。

有谁知道我如何通知LogOnModel现在所在的应用程序?

实际应用程序在AccountController的LogOn操作中失败:

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

所以也许这与路由有关?我没有触及Global.asax文件的默认设置。

1 个答案:

答案 0 :(得分:2)

您是否在web.config namespace部分引用了MySolution.Controllers.AccountModels?或者在aspx中使用Import指令,或在页面指令ViewPage<MySolution.Controllers.AccountModels.LogOnModel>中提供全名