我有一种CMS应用程序,允许创建内容页面并为它们指定URL。 我想让用户输入任何网址,例如:
/Documents/Forms/MyForm
/Documents/Manuals/MyManual
/Events/BBQThisWeek
然后我需要创建一个路由来检查数据库中是否存在具有给定Url的内容页面,如果是,则将路由到处理内容页面的控制器。如果没有,它将继续默认路线。
我该如何处理? 谢谢 诉
答案 0 :(得分:0)
您可能需要设置自定义处理程序。看看here
上的选项三您可以从动作调用者的数据库中读取。
答案 1 :(得分:0)
创建一个扩展Route
的类public class CustomRoute : Route
{
public override RouteData GetRouteData(System.Web.HttpContextBase httpContext)
{
var routeData = base.GetRouteData(httpContext);
if(routeData != null)
{ do some stuff on routeData... }
return routeData;
}
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
// Do the opposite of the first function
}
}
编辑:
最简单的方法是扩展Route
并使用base.GetRouteData然后只需将数据标记“控制器”和“操作”更改为您想要的内容