来自Url Slug的MVC动态视图
我正在构建我的第一个.NET MVC Web应用程序,并喜欢简单性和灵活性。 然而,我来到了我的第一个绊脚石。
我有一个项目列表,如果您没有登录,您将看到一个预览链接,我希望链接指向以下内容:
/preview/unique-slug
然后视图应该允许我显示数据库中的内容(本质上是一个详细信息页面)
我不知道如何处理这个问题,也不知道我应该采用哪种方法,因为我得到的结果很差。
有什么指针吗?
这是我过去这样做的方式:
您需要在数据库中存储一个带有每个项目引用的slug的列。 然后,创建如下路线:
routes.MapRoute("PreviewLink", "/preview/{slug}", new { controller = "Preview", action = "Details" } );
所以这将在PreviewController
上调用Details
方法,如下所示:
class PreviewController : Controller { public ActionResult Details(string slug) { var model = db.GetItemBySlug(slug); return View("Details", model); } }
基本上,您将在操作方法中将slug作为字符串获取,使用相应的slug查询数据库中的项目并显示它。 基本上,我们只是用字符串slug
替换整数id
。
希望能为您解决问题!