Asp.net
ASP.NET MVC 搜尋引擎優化 URL
我的目標是讓 url 路由如下:
http://www.abc.com/this-is-peter-page http://www.abc.com/this-is-john-page在上面的 url 中不放置控制器名稱和函式名稱的情況下,實現此目的的最簡單方法是什麼?如果找不到上面的頁面,我應該重定向到 404 頁面。
外掛 1:this-is-peter-page 和 this-is-john-page 不是靜態內容,而是來自數據庫。
與 KingNestor 的實現類似,您還可以執行以下操作以簡化您的工作:
1)寫你的模型
public class MyUser{public String UserName{get; set;}}2)添加路由到全域asax
routes.MapRoute( "NameRouting", "{name}", new { controller = "PersonalPage", action = "Index", username="name" });3)滾動您自己的從 IModelBinder 派生的自定義模型綁定器
public class CustomBinder : IModelBinder { public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var request = controllerContext.HttpContext.Request; var username = getUserNameFromDashedString(request["username"]); MyUser user = new MyUser(username); return user; } }
- 在你的行動中:
public ActionResult Index([ModelBinder(typeof(CustomBinder))] MyUser usr) { ViewData["Welcome"] = "Viewing " + usr.Username; return View(); }