我有一个问题,我不知道如何解释,但我会尝试。我遵循了这个: http: //www.deliveron.com/blog/post/SEO-Friendly-Routes-with-ASPnet-MVC.aspx 我能够实现他们所描述的。但是,如果我有一个希望从其他控制器调用操作的页面,它就不起作用。它不会以这种方式显示链接:URL 中的“this-is-my-link”。
我不知道我做错了什么?
在 Global.asax
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default2",
"{controller}/{action}/{id}/{pageTitle}",
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional,
pageTitle = UrlParameter.Optional
}
);
}
意见/帮助/常见问题
@Html.ActionLink(FaqStrings.ContactUs, "ContactUs", "Home", new { id = 1, pageTitle = "link text".ToSeoUrl() })
它说它无法解决 ContactUs。它看到的不是 HomeController 的动作,而是 HelpController 的动作。
在 HomeController
[AllowAnonymous]
public ActionResult ContactUs()
{
var model = new ViewModelContactUs
{
Resultmessage = string.Empty,
Youremail = string.Empty,
Yourmessage = string.Empty,
Yourname = string.Empty
};
return View(model);
}
[AllowAnonymous]
[HttpPost]
public ActionResult ContactUs(ViewModelContactUs model)
{
Log.DebugFormat("HomeController-ContactUs()");
...........
var model2 = new ViewModelContactUs
{
......
};
ModelState.Clear();
return View(model2);
}