我有一个非常简单的MVC网站,当试图在开始时加载页面时返回404未找到错误。我正在寻找一些方向来解决这个问题,因为从错误信息中没有什么可以继续。MVC页面没有显示,404没有找到
更新:问题似乎是由于我通过右键单击该文件并设置为起始页来设置起始页的缘故。这导致Visual Studio尝试直接加载该页面。当修改url以使用路由规则访问页面时,页面将按照Keltex的建议正确加载。
我得到的错误是:
说明:HTTP 404。您正在查找的资源(或它的 的一个依赖项)可能已被删除,更名,或暂时无法使用 。请检查以下URL并确保它正确拼写 。
请求的URL:/Views/Other/Index.aspx
下面我包括为各个部分的代码,路由规则默认:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
该网站使用嵌套MasterPages ,不确定这是否涉及问题,但试图尽可能包含更多细节。
我:
控制器
- OtherController
浏览:
- 共享文件夹:
- 的Site.Master
- 其他文件夹:
- Other.Master
- 的Index.aspx
的Site.Master代码:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
<asp:ContentPlaceHolder ID="TitleContent" runat="server" />
</title>
</head>
<body>
<div>
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
</div>
</body>
</html>
Other.Master代码:
<%@ Master Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewMasterPage" %>
<asp:Content ID="OtherTitle" ContentPlaceHolderID="TitleContent" runat="server">
OTHER PAGE - MASTER TITLE
<asp:ContentPlaceHolder ID="OtherPageTitle" runat="server">
</asp:ContentPlaceHolder>
</asp:Content>
<asp:Content ID="OtherContent" ContentPlaceHolderID="MainContent" runat="server">
Some other content.
<asp:ContentPlaceHolder ID="PageContent" runat="server">
</asp:ContentPlaceHolder>
</asp:Content>
指数。ASPX代码:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Other/Other.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="IndexTitle" ContentPlaceHolderID="OtherTitle" runat="server">
Home
</asp:Content>
<asp:Content ID="IndexContent" ContentPlaceHolderID="OtherContent" runat="server">
Index content
</asp:Content>
OtherController代码
namespace MVCProject.Controllers
{
public class OtherController : Controller
{
//
// GET: /Member/
public ActionResult Index()
{
// Have also tried:
// return View("Index", "Other.Master");
return View();
}
}
}
修改我在浏览器中访问的url会导致页面加载。 – mwright 2010-03-31 22:02:24
@mwright。首次启动应用程序时使用的URL。或者对上面的路由进行更改,使其他控制器成为默认控制器。 – Keltex 2010-03-31 22:05:25