我有這樣的問題。在RouteConfig.cs,我設定的路線asp.net mvc - 返回視圖後重寫網址
routes.MapRoute(
"NewsDetails",
"news/details-news/{title}-{id}",
new { controller = "News", action = "Details", id = "", title = "" }
);
在我NewsController的Index.cshtml我有一個鏈接
@Html.RouteLink(item.Title, "NewsDetails", new {
title = MyWeb.Classes.PrettyUrlHelper.PrettyUrl(item.Title),
id = item.Id
})
在我NewsController:
public ActionResult Details(string title,String id)
{
if (id == null && title == null)
return RedirectToAction("Index");
try
{
int ID = Int32.Parse(id);
var result = NewsConnectionDB.GetInstance().Single<LifeStory>(ID);
return View(result);
}
catch (InvalidOperationException) {
return View("~/Views/Error/Error404.cshtml");
}
catch (FormatException) {
return View("~/Views/Error/Error404.cshtml"); }
}
因此,如果用戶點擊在鏈接中查看,該鏈接將路由到動作細節處理,並且鏈接是Seo Url Friendly(localhost:9224/news/details-news/ten-things-2)。但用戶鍵入的鏈接,而不是點擊鏈接在查看:
localhost:9224/news/details-news/ten-thingsblahblahblah-2
上面的網址是正確的id但標題不是。那麼,如何在我返回後更新網址,如果用戶鍵入錯誤的標題,但正確的ID?
任何幫助,將不勝感激。
P/S:我的英文不好,所以希望你能理解。
在控制器,具有代碼重寫這個URL ** HttpContext.Current.Response。 AppendHeader(「CorrectUrl」,「YourUrl」); ** – HoangHieu