Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 无法使用区域,无法确定路由或web.config设置是否有问题_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 无法使用区域,无法确定路由或web.config设置是否有问题

Asp.net mvc 3 无法使用区域,无法确定路由或web.config设置是否有问题,asp.net-mvc-3,Asp.net Mvc 3,问题由以下步骤描述 使用Internet应用程序模板创建新的ASP.NET MVC3 Web应用程序 用Authorize装饰HomeController类 运行应用程序,基本上需要您:51578/Account/LogOn?ReturnUrl=%2F到目前为止一切正常 让我们在这个项目中定制一些东西 在此解决方案中添加一个名为“Login”的区域,并将AccountController.cs、AccountModel.cs和Viewer下的整个Account文件夹移动到名为Login的区域下的

问题由以下步骤描述

  • 使用Internet应用程序模板创建新的ASP.NET MVC3 Web应用程序
  • 用Authorize装饰HomeController类
  • 运行应用程序,基本上需要您:51578/Account/LogOn?ReturnUrl=%2F到目前为止一切正常
  • 让我们在这个项目中定制一些东西

  • 在此解决方案中添加一个名为“Login”的区域,并将AccountController.cs、AccountModel.cs和Viewer下的整个Account文件夹移动到名为Login的区域下的相应文件夹中
  • 现在运行应用程序,您将得到以下错误
  • 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

    异常详细信息:System.InvalidOperationException:未找到视图“登录”或其主视图,或者没有视图引擎支持搜索的位置。搜索了以下地点: ~/Views/Account/LogOn.aspx
    ~/Views/Account/LogOn.ascx
    ~/Views/Shared/LogOn.aspx
    ~/Views/Shared/LogOn.ascx
    ~/Views/Account/LogOn.cshtml
    ~/Views/Account/LogOn.vbhtml
    ~/Views/Shared/LogOn.cshtml
    ~/Views/Shared/LogOn.vbhtml


    我是否需要修改web.config或路由中的任何内容才能执行此操作?

    授权属性将您重定向到
    登录
    页面,该页面在
    登录
    区域之外的视图文件夹中找不到。如果在登录区域和登录注册区域中移动
    HomeController
    ,则会向home controller添加有效的路由,该路由将正常工作

    我试着做你想做的,但我找到的唯一解决方案是让你想授权的控制器和登录视图在同一个地方。我之前提到的将控制器和登录视图分开的解决方案不起作用


    也许有人可以找到一个解决方案来实现您真正想要的。

    这就是本文的重点,我想将登录相关的代码移动到一个单独的区域,以便更好地组织代码,同时将其他内容分开(将来可能会添加到另一个区域或其他内容)。感谢Bogdan的建议,但当我修改LoginAreaRegistration时,“/”应用程序中出现以下错误服务器错误。但不确定我需要在AccountController中修改什么。有什么想法吗?找不到资源。描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确。