当前位置:  开发笔记 > 后端 > 正文

获取完整的请求URL,包括控制器中的参数

如何解决《获取完整的请求URL,包括控制器中的参数》经验,为你挑选了2个好方法。

如何在控制器中获取完整的请求URL(包括查询字符串)?是连接我的URL和表单参数还是有更好的方法.

我检查了这个问题,但它似乎不适用于MVC.

如我错了请纠正我.

一些更详细的信息:

我对我的电话SearchController.AdvancedSearch()来自一个包含大约15个可选参数的表格.由于参数的数量并且没有可能的方法(我认为)以干净的方式传递可选参数,我去了一个在控制器中处理的catchall字符串.

现在我希望我的控制器将其调用存储在面包屑组件中,以便在单击面包屑时可以获取完全相同的结果(包括所有但不多的参数).为此,我需要整个request.URL,包括查询字符串.

Request.RawURL,request.URL等不包括在此查询字符串.事实上,目前我做了一个简单的功能.

String.Format("{0}/{1}", request.Url, request.form)

这给了我一些奇怪的结果(如提交按钮值等),但它的工作原理.如果有关于如何减少这种丑陋黑客的建议,请告诉我们.

我知道在哪里可以找到当前请求,但我似乎无法在任何地方找到原始URL.他们都被剥夺了查询字符串,我也需要这一点.

我的控制器更新了BreadCrumb组件中的URL集合.因此它需要请求URL.你怎么建议我接受这个问题?



1> Serhiy..:

你可以用Request.Url.PathAndQuery.

MVC5:使用Request.RequestUri.PathAndQuery


嘿,谢谢你的答案,虽然这个问题就像2岁;同时,两个版本的MVC已经出来,可选参数被MVC框架支持,使问题没有实际意义.

2> Jeff Sheldon..:
HttpContext.Current.Request.RawUrl
HttpContext.Current.Request.QueryString

至于你的第二个问题.而不是跟踪您的用户去过的网址,查询字符串信息等.跟踪调用的控制器和操作.这将完全取消对Request对象的需求.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有