来自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

希望能为您解决问题!