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