![](/img/trans.png)
[英]Project WPF .Net 3.5 in visual studio 2010 cause error
[英]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.