【问题标题】:MVC page not loading - The resource cannot be foundMVC 页面未加载 - 找不到资源
【发布时间】:2015-12-29 13:32:54
【问题描述】:

我刚刚创建了一个空的 MVC 项目并添加了一个母版页和 1 个视图(索引)。我还创建了一个控制器(HomeController)。我还右键单击 Index.aspx 视图并将其设置为启动。

但是,运行项目时出现错误 - “'/' 应用程序中的服务器错误。找不到资源。请求的 URL:/Views/Index.aspx”

家庭控制器

public ActionResult Index()
    {
        return View();
    }

索引

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server">
    Test
</asp:Content>

母版页

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="../../Content/Site.css" rel="stylesheet" />
<title>Test</title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
  <body>
    <form id="form1" runat="server">
       <div class="page">
       <div id="header">
        </div>
   <div id="main">
        <asp:ContentPlaceHolder ID="MainContent" runat="server" />

        <div id="footer">
        </div>
    </div>
        </div>
</form>
</body>
</html>

全球

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterRoutes(RouteTable.Routes);
    }

【问题讨论】:

  • 您的视图看起来像 asp.net 但不是 mvc 页面。您还需要将视图添加到 /Views/Home/Index.aspx

标签: c# asp.net-mvc asp.net-mvc-3 controller global


【解决方案1】:

尝试导航到/Home/Index

http://localhost:PORT/Home/Index

您已添加控制器 HomeController,这将匹配默认 MVC 路由并在 Home Controller 中查找 Index 操作方法。还要确保 Home View 位于应用程序的 Views 部分下名为 Home 的文件夹中。

作为建议,您可能还想使用 Razor 视图引擎而不是 ASP 视图引擎。

【讨论】:

  • 我从未使用过 Razor,现阶段更喜欢使用 ASP。我如何从控制器中查找索引,对不起,我对此很陌生。
  • @user3430861 - 索引是控制器上的一种操作方法。您已在HomeController 下的问题中提供了它。默认情况下,MVC 有一个与 HomeController 和 Index action 方法匹配的默认路由。尝试导航到“/Home/Index”,就像我在回答中向您展示的那样。
  • 我尝试将网址重命名为您提供的网址,但仍然出现错误。我应该尝试创建一个文件夹 Home 并在文件夹中移动视图吗?
  • @user3430861 - 是的,这应该可以解决问题,默认情况下,MVC 从控制器名称查看视图文件夹。
  • 我创建了一个名为“Home”的文件夹并在文件夹中移动了视图,但仍然出现错误:(请求的 URL:/Views/Home/Index.aspx
猜你喜欢
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-01
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多