我知道我可以在我的MVC应用程序中更改RouteConfig中的路由:
routes.MapRoute(name: "epage", url: "view/SpecificURL", defaults: new {
controller = "ePage",
action = "Index"
})
但我想知道如何重定向来自db的值。我的数据库中有一行有标题。因此,对于从db发出的每个标题,我想重定向到特定的URL 离。
db中的标题可能是"pink"
我希望将www.mydomain.com/pink
重新路由到特定网址。我希望它重定向到的URL也在db中。我看了很多关于这方面的问题,似乎找不到任何动态改变网址路由的方法
答案 0 :(得分: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查询并从中填充路由表。