asp.net-mvc – 动态URL路由ASP MVC

我试图创建一个非常简单的应用程序,让我的客户端创建自己的页面.
困难的部分是让他们创建自己的URL.

客户需要填写:

>页面名称(例如关于我们).
>页面描述(例如,我们是一家大公司).
>页面URL相对(例如/关于)

当客户输入此信息并保存时,应将其保存在数据库中.

我可以轻松地创建一个名为“Page”的控制器,其值为“ID”,当用户输入“www.someurl.com/Page/1”时,弹出新创建的页面.

但我真正想要的是让用户写“www.someurl.com/About”,然后弹出页面.

如何使用ASP MVC使用某种动态重写/路由代码来完成.

我的想法是在你的’Page’表中创建一个名为’Slug’的字段.当您的用户创建新页面时,他们必须填写“Slug”字段并输入他们希望在网址中看到的内容(例如:页面需要 – “关于”,slug – “about”|页面需要 – “请参阅我们的赞助商“,slug – ”看到我们的赞助商“|等等.如果需要,您可以使用一些 javascript自动执行此过程.

像这样创建一条路线:

routes.MapRoute(
    null,
    {slug},
    new { controller = "Page", action = "ChoosePage" });

创建一个这样的动作方法:

[AcceptVerbs(HttpVerbs.Get)]
public ViewResult ChoosePage(string slug)
{
    //Logic to display page
}

基本上它会像你的想法一样将页面ID放在url中,但它会更清晰,它会使用’slug’来进行数据库查找而不是页面ID.

相关文章
相关标签/搜索