繁体   English   中英

Visual Studio 2010 ///.NET MVC应用程序-空白项目出现404错误

[英]Visual Studio 2010 //.NET MVC Application - 404 Error on blank project

我在vs2010中创建了一个空的mvc项目,并创建了一个视图(MessageView),一个控制器和一个模型。 由于某种原因,当我构建应用程序(将视图设置为起始页)时,它似乎抛出404错误并将以下内容附加到URL:

http://localhost/MvcApplication1/**Account/LogOn?ReturnUrl=%2fMvcApplication1%2fViews%2fMessageView.aspx**

研究完web.config文件后,可以看到以下代码:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

这已自动添加。...不完全确定为什么要考虑单击空的MVC项目。 任何人都知道解决此问题的最干净的方法。

编辑

已解决:问题是我将MessageView移到了.NET放置在其中的Views子目录中。 我必须将视图放置在项目目录的根目录中,以便它能够找到并显示它。 我还必须从web.config文件中删除上面的代码。

将其放在子目录中时,如何使其工作

只需将Web选项卡上项目属性中的Start Action值从默认值Current Page更改为其他值即可。

您不想访问视图,您想访问控制器。 这不是错误,而是MVC的工作方式。 您的网址应为:

http:// localhost / MvcApplication1 / ControllerName

http://localhost/MvcApplication1/Views/MessageView.aspx

更新资料

这是正在发生的事情。 您从一个空白项目开始。 这意味着您没有帐户控制器。

MVC不允许Web服务器在/ Views(/Views/Whatever.aspx)中公开您的原始视图文件。 当您尝试访问它时,它将导致返回403禁止的标头。

ASP.NET通过重定向到/ Account / LogOn(AccountController的LogOn操作方法)来处理403。 由于您有一个空白项目,并且没有AccountController,这就是导致404错误的原因。

另一个更新

只需阅读您已解决的问题即可。 同样,您不能访问“视图”,“控制器”或“模型”文件夹中的文件。 这些是MVC使用的特殊文件夹。

如果要访问子目录中的视图,请创建一个子目录,例如/ content或/ scripts。 MVC将它们视为普通文件夹,您可以从其中访问任何内容。 因此,您可以将文件放在这样的文件夹中:

/SubdirectoryAbc/MessageView.aspx。

然后,您应该能够使用URL http://localhost/MvcApplication1/SubdirectoryAbc/MessageView.aspx访问此文件。

但是,您将无法在控制器操作方法中使用该视图。

问题在于,由于MVC具有路由功能,因此它对文件结构使用约定。 如果要将视图移动到另一个文件夹,则需要自定义路由代码以正确映射到您的文件夹结构。 老实说,我认为这不值得您花时间。

您可以删除整个部分;

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

这将禁用默认情况下使用MVC放置到站点上的身份验证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM