У меня очень простой сайт 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
Просмотров:
- Shared Folder:
- 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>
Index.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
@mwright. URL-адрес, который вы используете при первом запуске приложения. Или внесите изменения в маршрутизацию, которую я поставил выше, чтобы ваш другой контроллер был контроллером по умолчанию. – Keltex