問題が1つあります。説明方法がわかりませんが、試してみます。私はこれに従いました: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);
}