设置一个简单的ASP.NET MVC路由

时间:2013-01-23 00:33:06

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

我正在与ASP.NET MVC 4合作,我正试图写一条非常基本的路线,但它不起作用而且对它感到非常沮丧!

我希望网址http://www.mywebsite.com/my-page触发名为 Page 的控制器和操作方法索引

除此之外我没有其他路线设置:

RouteTable.Routes.MapRoute(
    name: "Default",
    url: "my-page",
    defaults: new { controller = "Page", action = "Index" }
);

我的设置有什么不对,或者我哪里出错?

我得到的错误是:

  

未找到路径'/ my-page'的控制器或未实现IController。

1 个答案:

答案 0 :(得分:0)

主要问题是您正在尝试覆盖默认路由。在MVC4中,路由在App_Start / RouteConfig.cs中定义。 “默认”路线应该是最后的路线:

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

然后,对于您的特定路线,请在默认路线之前使用以下内容:

        routes.MapRoute(
            name: "MyPage",
            url: "my-page",
            defaults: new { controller = "Page", action = "Index" }
        );

Fianlly,确保您拥有一个带有操作索引和View Views / Page / Index.cshtml的控制器PageController.cs:

public class PageController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}