asp.net – 在ASP MVC3中,如何使用uri执行控制器和动作?
发布时间:2020-12-16 00:14:20 所属栏目:asp.Net 来源:网络整理
导读:在执行控制器操作时,我怎样才能获取Uri(不是请求的那个)并从控制器调用该操作,如果Uri是被调用的那个?我不能简单地重定向到该操作,因为我需要它在同一个请求上下文中发生. 解决方法 假设您可以访问HttpContext(我想您在询问时就这样做了),您可以: var rout
在执行控制器操作时,我怎样才能获取Uri(不是请求的那个)并从控制器调用该操作,如果Uri是被调用的那个?我不能简单地重定向到该操作,因为我需要它在同一个请求上下文中发生.
解决方法
假设您可以访问HttpContext(我想您在询问时就这样做了),您可以:
var routeData = new RouteData(); // controller and action are compulsory routeData.Values["action"] = "index"; routeData.Values["controller"] = "foo"; // some additional route parameter routeData.Values["foo"] = "bar"; IController fooController = new FooController(); var rc = new RequestContext(new HttpContextWrapper(HttpContext),routeData); fooController.Execute(rc); 我个人使用这种方法来处理我的应用程序内的错误.我把它放在Application_Error中,并为停留在初始HTTP请求的上下文中的自定义错误页面执行错误控制器.您还可以在routeData哈希中放置复杂对象,然后将这些复杂对象作为操作参数返回.我使用它来传递错误控制器操作发生的实际异常. 更新: 为了解析其路线数据令牌的URL,考虑到当前路线,您可以: var request = new HttpRequest(null,"http://foo.com/Home/Index","id=1"); var response = new HttpResponse(new StringWriter()); var httpContext = new HttpContext(request,response); var routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(httpContext)); var values = routeData.Values; var action = values["action"]; var controller = values["controller"]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-core – 如何使用Asil.net 5(dotnet core)使用Seri
- .net – 我可以创建基于非语言的全局.resx吗?
- asp.net-mvc – asp.net mvc子行为
- .Net 内存对象分析
- asp.net-mvc – MVC5在不使用System.Web的情况下读取Config
- asp.net – 将linq查询结果转换为datatable C#
- asp.net – .NET Application_BeginRequest – 如何获取用户
- asp.net-mvc – 在web api 2中使用autofac的无参数构造函数
- 什么是Asp.net中的中等信任?
- 为什么32位应用程序池在IIS中更有效?
推荐文章
站长推荐
- 如何在ASP.NET MVC中使用JQuery调用控制器操作
- asp.net – 哪个NuGet包包含System.Web.Routing?
- OAuth(OAuth2)ASP.NET REST Web API(自我主机 –
- asp.net – Session实际上如何在MVC中运行?
- dependency-injection – 如何使用ASP.NET MVC 3
- asp.net – 断点当前不会被命中 – 没有可执行代
- ASP.NET网站中的预定作业,无需购买专用服务器
- asp.net – 如何获取SignalR用户连接ID在外线中心
- asp.net-mvc-3 – ASP.NET MVC注入Http / Reques
- asp.net – 使用xml类型在SQL Server 2005中存储
热点阅读