asp.net-mvc – Asp.Net MVC – “动态”路由的最佳方法
我试图提出一种创建“动态”路由的方法.我的意思是,我想要能够为每个命中分配一个路由的控制器和动作,而不是直接映射.
例如,路由可能看起来像这样“path / {object}”,并且当该路径被命中时,执行查找,提供适当的控制器/动作来进行调用. 我已经尝试发现创建自定义路由处理程序的机制,但是文档/可发现性在某种程度上是有点阴影的(我知道,它的beta – 我不会再期望).虽然,我不知道甚至最好的方法,甚至控制器工厂,甚至执行所有映射的默认控制器/动作可能是最好的路线(不是双关语). 任何建议将不胜感激. 解决方法
您可以随时使用所有语法(我不知道名称是否正确).
路线: routeTable.MapRoute( 控制器动作定义为: 在控制器的动作中,您将拥有一条路径,因此只需将其分散并分析即可. 要调用另一个控制器,您可以使用RedirectToAction(我认为这是更正确的方法).通过重定向,您可以为其设置永久重定向. internal class MVCTransferResult : RedirectResult { public MVCTransferResult(string url) : base(url) { } public MVCTransferResult(object routeValues) : base(GetRouteURL(routeValues)) { } private static string GetRouteURL(object routeValues) { UrlHelper url = new UrlHelper( new RequestContext( new HttpContextWrapper(HttpContext.Current),new RouteData()),RouteTable.Routes); return url.RouteUrl(routeValues); } public override void ExecuteResult(ControllerContext context) { var httpContext = HttpContext.Current; // ASP.NET MVC 3.0 if (context.Controller.TempData != null && context.Controller.TempData.Count() > 0) { throw new ApplicationException( "TempData won't work with Server.TransferRequest!"); } // change to false to pass query string parameters // if you have already processed them httpContext.Server.TransferRequest(Url,true); // ASP.NET MVC 2.0 //httpContext.RewritePath(Url,false); //IHttpHandler httpHandler = new MvcHttpHandler(); //httpHandler.ProcessRequest(HttpContext.Current); } } 但是这种方法需要在IIS或IIS上运行Expres Casinni不支持Server.Transfer方法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 让System.Web.Optimization在类库中的剃刀视
- 如何在ASP.NET修复的oracle填充攻击?
- asp.net – 有没有办法以编程方式设置Elmah中的应用程序名称
- asp.net-mvc – 免费.Net云主机与SQL Server数据库
- asp.net – System.InvalidOperationException:堆栈为空
- asp.net – 会话 – 多个浏览器选项卡 – 不同的会话?
- IBatis.Net 老技术新研究
- asp.net mvc 下载文件并不打开下载页面
- IIS和ASP.NET中的时间差异
- ASP.Net缓存疑难解答 – CacheDuration属性似乎没有任何效果
- asp.net-mvc – ASP.Net MVC 3中的远程验证:如何
- asp.net-identity-2 – 没有实体框架的ASP.NET I
- asp.net-mvc – 在活动的SignalR连接期间更改用户
- asp.net-mvc – MVC4 RC WebApi参数绑定
- asp.net-mvc-4 – 在umbraco中获取错误无法找到类
- ASP.NET和System.Diagnostics跟踪 – 我错过了什
- asp.net-mvc – .input-validation-error为表单重
- asp.net-mvc – Html.DisplayFor不发布值到控制器
- asp.net-core-mvc – 如何在Asp.net Core MVC(又
- asp.net-mvc – 在VS2012中调试MVC应用程序尝试启