C# '中的服务器错误/';基于Razor引擎的ASP.netmvc3应用
我刚刚用Razor引擎创建了一个新的ASP.NETMVC3项目。我在controller文件夹中添加了一个控制器,然后在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
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!!!
}
}
}