相关疑难解决方法(0)

在代码隐藏中获取ASP.Net页面的URL

我有一个ASP.Net页面,它将托管在几个不同的服务器上,我想获取页面的URL(甚至更好:托管页面的站点)作为在代码隐藏中使用的字符串.有任何想法吗?

asp.net

193
推荐指数
7
解决办法
34万
查看次数

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

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

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

如我错了请纠正我.

一些更详细的信息:

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

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

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

String.Format("{0}/{1}", request.Url, request.form)
Run Code Online (Sandbox Code Playgroud)

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

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

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

url asp.net-mvc

35
推荐指数
2
解决办法
9万
查看次数

获取没有非标准端口的原始URL(C#)

第一个问题!


环境

MVC,C#,AppHarbor.

问题

我正在调用openid提供程序,并根据域生成绝对回调URL.

在我的本地机器上,如果我点击,这可以正常工作 http://localhost:12345/login

Request.Url; //gives me `http://localhost:12345/callback`
Run Code Online (Sandbox Code Playgroud)

但是,在我正在部署的AppHarbor上,因为他们使用的是非标准端口,即使我在" http://sub.example.com/login "上点击它

Request.Url; //gives me http://sub.example.com:15232/callback
Run Code Online (Sandbox Code Playgroud)

这搞砸了我的回调,因为端口号不在原始源URL中!

我试过了

  • Request.Url
  • Request.Url.OriginalString
  • Request.RawUrl

所有这些都给了我" http://sub.example.com:15232/callback ".

另外要清除这不是一个Realm问题,我从DotNetOpenAuth得到的错误信息是

'http://sub.example.com:14107/accounts/openidcallback' not under realm 'http://*.example.com/'. 
Run Code Online (Sandbox Code Playgroud)

我不觉得我塞满了吗?

现在,我要考虑一些像hacky这样的东西

  • 预处理器命令(#IF DEBUG THEN PUT PORT)
  • string replace(Request.URL.Contains("localhost"))

所有这些都不是100%的解决方案,但我厌倦了考虑我可能缺少的一个简单的财产.我也读过这个,但似乎没有一个可接受的答案(更多的是关于路径而不是权威).所以我把它给你们.

摘要

所以如果我有http://localhost:12345/login,我需要http://localhost:12345/callback从Request上下文中获取.

如果我有" http://sub.example.com/login ",我应该得到" http://sub.example.com/callback ",无论它在哪个端口.

谢谢!(睡觉时间,早上会回答任何问题)

c# asp.net-mvc port httprequest appharbor

18
推荐指数
1
解决办法
8883
查看次数

如何从业务逻辑层获取URL?

我在C#项目中有一个业务逻辑层,我需要找到一种方法来生成基于运行网站的基本URL的URL.

例如,这是url:http:// localhost:56240/Management/Quiz.aspx?QuizID = 46

我需要一种方法来获取这一部分:http:// localhost:56240使用来自业务逻辑层的C#代码(意味着我不能使用Request对象或context.Request).

有没有办法做到这一点 ?

c#

5
推荐指数
0
解决办法
1856
查看次数

标签 统计

asp.net-mvc ×2

c# ×2

appharbor ×1

asp.net ×1

httprequest ×1

port ×1

url ×1