我正在与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。
答案 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();
}
}