我想我的MVC的URL像這樣:爲什麼ActionLink URLEncode不?
http://www.site.com/project/id/projectname
例子:
http://www.site.com/project/5/new-website
我的控制器:
public ActionResult Details(int id, string projectname)
任何我的ActionLink的是:
@Html.ActionLink("click here", "Details", "Project", new { id = project.ProjectID, projectname = project.ProjectName })
和我的路線是:
routes.MapRoute(
"Project",
"project/{id}/{projectname}",
new { controller = "Project", action = "Details", id = "", projectname = "" }
);
當然該系統具有足夠的信息還有,要知道項目名稱將是URL的一部分,所以應該進行urlencode的鏈接,並因此與連字符替換空格?但它沒有,所以空格變成%20我不知道我在哪裏定製這個?我是否重寫了Html.ActionLink?在每次編輯時在數據庫中存儲名稱的「URL-ready」版本 - 看起來像是一種浪費,應該在飛行中自動完成。我不想在每次使用Html.ActionLink時都要調用「FriendlyURL」函數 - 同樣,它應該自動處理。
你可能想slugify您的項目名稱。 http://stackoverflow.com/questions/2920744/url-slugify-alrogithm-in-c – RK911 2013-03-22 20:31:49