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