【发布时间】:2013-03-14 01:04:57
【问题描述】:
在我的工作中,我必须解决一个 URL 重写问题。我必须使用 URL 作为模板:
{controller}/{action}-{id}
而不是
{controller}/{action}/{id}
所以处理后的 url 应该是这样的:
myController/myAction-128
其中 128 是一个参数
我的路线图:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "NewRoute", // Route name
url: "{controller}/{action}-{id}/{extId}", // URL with parameters
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, extId = UrlParameter.Optional } // Parameter defaults
);
}
控制器代码:
[HttpGet]
public ActionResult DocumentDetails(int? id)
{
if (doc.HasValue)
{
...
}
}
这条路线没有提供任何成功的结果。我仍然有 404 错误。当我使用 / 而不是“-”时,一切正常,但我的 JS View 环境无法正常工作。
我可以做些什么来解决这个问题吗?我们将不胜感激所有帮助,谢谢。
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-4 url-rewriting asp.net-mvc-routing