在我的工作中,我必须解决一个 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 环境无法正常工作。
我能做些什么来解决这个问题吗?所有帮助将不胜感激,谢谢。