使用区域时遇到问题,不确定路由或web.config设置是否有问题

时间:2011-10-04 21:06:35

标签: asp.net-mvc-3

问题由以下步骤描述。

  1. 使用Internet应用程序模板创建新的ASP.NET MVC3 Web应用程序。
  2. 使用Authorize装饰HomeController类。
  3. 运行应用程序,它基本上需要你http://localhost:51578 /帐户/登录?ReturnUrl =%2F到目前为止一切都很好。
  4. 让我们在这个项目中自定义一些东西。

    1. 在此解决方案中添加名为“Login”的区域,并将Viewer下的AccountController.cs,AccountModel.cs和整个Account文件夹移动到名为Login的此区域下的相应文件夹中。
    2. 立即运行该应用程序,您将收到以下错误
    3. 描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

      异常详细信息:System.InvalidOperationException:未找到视图“LogOn”或其主节点,或者没有视图引擎支持搜索的位置。搜索了以下位置: 〜/查看/帐号/ LogOn.aspx
      〜/查看/帐号/ LogOn.ascx
      〜/查看/共享/ LogOn.aspx
      〜/查看/共享/ LogOn.ascx
      〜/查看/帐号/ LogOn.cshtml
      〜/查看/帐号/ LogOn.vbhtml
      〜/查看/共享/ LogOn.cshtml
      〜/ Views / Shared / LogOn.vbhtml

      我是否需要修改web.config或路由中的任何内容才能使其正常工作?

1 个答案:

答案 0 :(得分:1)

authorize属性会将您重定向到LogOn页面,该页面在Login区域之外的View文件夹中找不到。如果您在登录区域和LoginRegisterArea中移动HomeController,您可以向家庭控制器添加有效路由,它将起作用。

我尝试做你想做的事,但我找到的唯一解决方案是让你想要授权的控制器和LogOn视图在同一个地方。我之前提到的关于保持控制器和LogOn视图分离的解决方案不起作用。

也许有人可以找到一种能够实现你真正想要的解决方案。