2

我知道我可以在 MVC 应用程序的 RouteConfig 中更改路由:

routes.MapRoute(name: "epage", url: "view/SpecificURL", defaults: new {
    controller = "ePage",
    action = "Index"
})

但我想知道如何重定向来自数据库的值。我的数据库中有一行有标题。因此,对于来自数据库的每个标题,我想重定向到特定的 url ex。

db 中的标题可能是"pink" 我想www.mydomain.com/pink 重新路由到特定的 url。我希望它重定向到的 URL 也在数据库中。我查看了很多关于此的问题,似乎找不到任何动态更改 url 路由的问题

4

1 回答 1

0

您可以设置这样的路线:

routes.MapRoute(name: "Default",
    url: "{id}",
    defaults: new { controller = "Home", action = "Index" });

然后在你的控制器中(在我的例子中是 HomeController):

public ActionResult Index(string id)
{
    ContentResult cr = new ContentResult();
    // Do a DB lookup here to get the data you need from the database to generate the appropriate content.
    cr.Content = id;
    return cr;
}

此示例仅返回已发送的字符串。所以现在如果我浏览到http://localhost/mysite/pink我会得到“粉红色”作为我的结果。您可以轻松地使用此方法查找自定义数据库以确定要返回的正确内容。

如果您现有的路线不允许您采用此路线:),那么您始终可以在RegisterRoutes方法中执行 SQL 查询并从中填充路由表。

于 2013-01-17T02:51:44.037 回答