从我在ASP.NET MVC中开发的网站的私有区域中,我想创建一个新网页(或更合适的控制器),其网址段如“www.mysite.com/newpage/”(而非“www.mysite”)的.com / myController的/ NEWPAGE /“);
我不希望在设计/开发时创建控制器,我希望能够在运行时创建控制器并将其名称(url段)存储在数据库中,因此当请求页面时,应用程序会检查它是否存在存在于数据库中并呈现页面(视图)。
任何人都知道互联网上的一个例子,它解释了实现类似选项的最佳方法吗?
答案 0 :(得分:1)
执行此操作的最佳解决方案是为单个控制器创建多个路由,并根据路由名称执行代码。这些路径名也可以由数据库管理。
示例:
Global.asax中
public static void RegisterRoutes(RouteCollection routes)
{
// The collection of route can be manage via DB
foreach (string route in new[] { "route1", "route2", "route3" })
{
routes.MapRoute(
route,
route + "/{*args}",
new { controller = "MyController", action = "MyAction", args = UrlParameter.Optional, routeName = route }
);
}
}
myController的
public ActionRestult MyAction(string args)
{
switch(RouteData.Values["routeName"].ToString()){
case "route1" :
// do your code
break;
case "route2" :
// do your code
break;
case "route3" :
// do your code
break;
}
}
希望这会有所帮助!!