6

我刚刚使用 Razor 引擎创建了一个新的 ASP.NET MVC 3 项目。我在控制器文件夹中添加了一个控制器,然后在homController.cs我添加了一个视图。

View ( index.cshtml) 只有以下代码:

@{
   ViewBag.Title = "Home";
}

<h2>Home</h2>

当我开始调试时,它向我显示了这个错误:

Server Error in '/' Application.
The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.225

有什么问题?

4

6 回答 6

7

你能检查一下 App_Start/RouteConfig.cs,你必须有一个名为 homController.cs 的控制器的代码:

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

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "hom", action = "Index", id = UrlParameter.Optional }
    );
}

我想,您的第一个控制器名称不是“Home”,因此您必须更改默认控制器名称!

于 2013-06-24T09:23:46.427 回答
2

在 ASP .NET MVC 3 中,您的路由在 global.asax 中定义

您可以在网站根目录中找到它。

默认情况下,它看起来像这样:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
      "Default", // Route name
      "{controller}/{action}/{id}", // URL with 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );
}

这意味着当您不带参数调用网站根目录时,它使用默认值 - 在这种情况下为home/index.

因此,您需要确保:

  • 有一个控制器叫做home
  • 一个返回 ActionResult的Action调用index

或者,您可以更新路由中的默认值,但如果您刚刚开始,我不推荐这样做。

于 2013-06-24T09:35:00.917 回答
2

由于您使用的是 MVC 3,因此请检查 global.asax 中 Application_Start 中的路由条目。就像“Joffrey Kern”建议的那样,您需要配置路由。

还要确保您的控制器名为“HomeController”,并且您有一个名为“Index”的公共方法,该方法返回一个 ActionResult 对象。

于 2013-06-24T09:31:15.717 回答
0

它不一定是你的路线......它可能是网络配置中的错误配置

于 2015-06-03T14:23:53.567 回答
0

如果您收到此错误,我强烈建议您更改您的公共班级名称。给一个新名称作为“HomeController”:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MyFirstMVC.Controllers
{
    public class HomeController : Controller
    {

        // GET: /First/

        public string Index()
        {
            return  "Jay Swaminarayan"; // this string will be display at your run time!!!
        }

    }
}
于 2016-03-11T04:35:21.690 回答
-1

这是 ravinder akula

请找到这个答案

  • 右键单击您的 mvc 项目

  • 选择“属性”

  • 选择“网络”选项卡

  • 选择“特定页面”

  • 假设您有一个名为 HomeController 的控制器和一个名为 Index 的操作方法,请输入“home/index”而不是 home/index。将cshtml添加到与“特定页面”单选按钮对应的文本框中。

于 2013-12-28T13:06:46.833 回答