【发布时间】:2016-03-18 12:53:48
【问题描述】:
我正在尝试按照在线教程进行一些 MVC 路由,但由于某种原因路由不起作用。
我正在尝试做http://www.website.com/news/news-title
我正在尝试做的路线如下。
routes.MapRoute(
"News",
"{controller}/{url}",
new { controller = "News", action = "Index", url = "" }
);
在我的 NewsController 中,我有以下 ActionResult。
public ActionResult Index(String url)
{
return View();
}
但是,在逐步完成代码时,不会填充 url。
谢谢
== 更新 ==
谢谢大家的回复。
我没有修改下面的路线
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;
routes.Add(new SubdomainRoute());
routes.MapRoute(
"News",
"News/{action}/{slug}",
new { controller = "News", action = "Index" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
此网址有效:/news/index/?slug=test-news-title
但是这个网址没有:/news/index/test-news-title
=== 进一步编辑 ===
看来我的子域路由搞砸了。如果我删除子域路由它工作正常。
谢谢。
【问题讨论】:
-
slug 是个好名字!
-
那么,您也可以发布您的子域路由吗?确保它在与传入请求不匹配的情况下返回
null,否则路由框架将不会检查您的任何其他路由。第一场比赛总是赢。
标签: c# asp.net-mvc url-routing asp.net-mvc-routing