У меня очень простой 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
);
Сайт использует вложенные мастер-страницы, не уверен, что это связано с проблемой, но пытается включить как можно больше подробностей.
у меня есть:
Контроллеры
Просмотров: 1028 * *
- Общая папка:
- Другая папка:
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>
Другое. Код мастера:
<%@ 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>
Другой код контроллера
namespace MVCProject.Controllers
{
public class OtherController : Controller
{
//
// GET: /Member/
public ActionResult Index()
{
// Have also tried:
// return View("Index", "Other.Master");
return View();
}
}
}