C# '中的服务器错误/';基于Razor引擎的ASP.netmvc3应用

C# '中的服务器错误/';基于Razor引擎的ASP.netmvc3应用,c#,asp.net,asp.net-mvc-3,razor,C#,Asp.net,Asp.net Mvc 3,Razor,我刚刚用Razor引擎创建了一个新的ASP.NETMVC3项目。我在controller文件夹中添加了一个控制器,然后在homController.cs添加了一个视图 视图(index.cshtml)只有以下代码: @{ ViewBag.Title = "Home"; } <h2>Home</h2> 有什么问题吗?您能检查一下应用程序启动/RouteConfig.cs吗,对于一个名为homController.cs的控制器,您必须有以下代码: public st

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

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

@{
   ViewBag.Title = "Home";
}

<h2>Home</h2>

有什么问题吗?

您能检查一下应用程序启动/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”,因此您必须更改默认控制器名称

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


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

在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
  • 名为
    索引的
    操作
    ,返回操作结果

或者,您可以更新路由中的默认值,尽管如果您刚刚开始,我不建议这样做。

这是ravinder akula

请找到这个答案

  • 右键单击您的mvc项目

  • 选择“属性”

  • 选择“Web”选项卡

  • 选择“特定页面”

  • 假设您有一个名为HomeController的控制器和一个操作 方法称为Index,请输入“home/Index”而不是 主页/索引。cshtml中对应于 “特定页面”单选按钮


    • 这不一定是你的路线。。。如果您遇到此错误,则可能是web配置中的错误配置,我强烈建议您更改公共类名。将新名称命名为“HomeController”:


      我想你的路线是错误的-你的控制器的名称是什么?homController.cs是控制器的名称。。。调试时的路由是:
      http://localhost:13628/
      而且它不工作!当我创建一个asp.net Web应用程序(没有MVC)并对其进行调试时,它可以完美地工作。。。。我不知道为什么会出错!在问题中,您说控制器名为controller.cs,在注释中,您说控制器名为homeController.cs。原因可能是哪一个?@Tanner,对不起,错了:(你能告诉我在哪里可以找到App_Start/RouteConfig.cs吗???我在解决方案资源管理器中查找了每个文件夹,但找不到你所说的内容!我去了Global.asax,找到了你告诉我的代码…我应该更改什么?我控制器的名称是:homController.csi如果你控制器的名称是homController,你有要将默认控制器的值更改为“hom”,我必须更新我的回答nx joffrey…您的回答非常有帮助
      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
          );
      }
      
      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!!!
              }
      
          }
      }