Get full request url, including parameters in controller
如何在控制器中获取完整的请求URL(包括查询字符串)?是连接URL和表单参数的问题,还是有更好的方法。
我查过这个问题,但似乎不适用于MVC。
如果我错了就纠正我。
一些更详细的信息:
我对我的
现在,我希望控制器将其调用存储在breadcrumb组件中,这样当单击crumb时,可以获取完全相同的结果(包括所有参数,但不包括更多参数)。为此,我需要整个request.url,包括querystring。
在
1 | String.Format("{0}/{1}", request.Url, request.form) |
这给了我一些奇怪的结果(比如提交按钮值等),但它是有效的。如果有关于如何减少这一丑陋的黑客的建议,请务必告诉。
我知道在哪里可以找到当前的请求,但似乎在任何地方都找不到原始的URL。它们都被从查询字符串中剥夺了,我也需要这个位。
我的控制器在我的
您可以使用
MVC5:使用request.requesturi.pathandquery
1 2 | HttpContext.Current.Request.RawUrl HttpContext.Current.Request.QueryString |
至于你的第二个问题。而不是跟踪用户访问的URL、查询字符串信息等。跟踪调用的控制器和操作。这将完全消除对请求对象的需求。
1 | Request.RawUrl |
使用此属性是返回所有URL。
您可以使用以下方法获取当前请求对象:
1 | HttpContext.Current.Request |
但是,我要问——为什么你想要请求URL?通过这样做,您已经使控制器依赖于请求对象,这将使单元测试更加难以编写。
在控制器中,您可以访问