从我用 ASP.NET MVC 开发的网站的私有区域,我想创建带有 URL 段的新页面(或更准确地说是控制器),如“www.mysite.com/newpage/”(而不是“www.mysite.com/”我的控制器/新页面/");
我不想在设计/开发时创建控制器,我希望能够在运行时创建控制器并将它们的名称(url 段)存储在数据库中,因此当请求页面时,应用程序会检查它是否存在于数据库并呈现页面(视图)。
任何人都知道 Internet 上的一个示例,该示例解释了实现此类选项的最佳方法?
从我用 ASP.NET MVC 开发的网站的私有区域,我想创建带有 URL 段的新页面(或更准确地说是控制器),如“www.mysite.com/newpage/”(而不是“www.mysite.com/”我的控制器/新页面/");
我不想在设计/开发时创建控制器,我希望能够在运行时创建控制器并将它们的名称(url 段)存储在数据库中,因此当请求页面时,应用程序会检查它是否存在于数据库并呈现页面(视图)。
任何人都知道 Internet 上的一个示例,该示例解释了实现此类选项的最佳方法?
最好的解决方案是为单个控制器创建多个路由并根据路由名称执行代码。这些路由名称也可以由数据库管理。
例子 :
全球.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 }
);
}
}
我的控制器
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;
}
}
希望这会有所帮助!