我想改變:操作命中MVC後更改URL?
www.testurl.com/sports/blog/1
當運動是我的領域,博客是我的行動,1是一個博客帖子的ID,以:
www.testurl.com/sports/blog/test-title-of-blog
哪裏博客仍然是我的行動,但該ID未顯示,而是博客的標題/永久鏈接是。
這裏是我的這個動作AreaRegistration:
context.MapRoute(
"sports",
"sports/{action}/{content}",
new { area = "Sports", controller = "Sports", action = "", content = "" });
這是我此刻的動作:
[HttpGet]
public ActionResult Blog(string content)
{
int contentId;
if (Int32.TryParse(content, out contentId))
{
model = service.GetBlogById(contentId);
}
else
{
model = service.GetBlogByTitle(content);
}
//Change URL to be: www.testurl.com/sports/blog/ + model.SEOFriendlyTitle
return View(model);
}
用戶可以通過博客的ID進行搜索,同時也得到了它的標題,但我只想要標題出現在url欄中,從來沒有id。
由於會導致持續的維護,我無法通過重定向規則執行此操作。
控制器是否是正確的位置? - 請注意我可能沒有我的頭銜,直到後,我使用的ID
我怎麼會去改變URL顯示標題主場迎戰ID檢索數據庫中呢?
這正是我所做的。我也想到第二次去數據庫和服務器,但可以通過在tempData中傳遞對象並檢查是否存在,從而避免數據庫調用。這是一個非常邊緣的情況,網站上的所有網址都是頁面標題......我只是希望能夠支持ID而不是標題。這是可以接受的答案,因爲它解決了我所遇到的問題(儘管可能會導致其他問題:P) – JCisar