Asp.net mvc ASP.NET MVC中模型中的UrlHelper不正确
我在控制器上创建回调方法。我对社交提供商使用Oauth授权。当我为回调创建url并为提供程序发送查询时-提供程序正在获取下一个url: http://127.0.0.1:8080/OAuth/CallBack 但这一领域在这方面—— 如何使用当前上下文和此域? 在调试模式下,项目工作正常,因为项目名称与本地地址匹配Asp.net mvc ASP.NET MVC中模型中的UrlHelper不正确,asp.net-mvc,urlhelper,Asp.net Mvc,Urlhelper,我在控制器上创建回调方法。我对社交提供商使用Oauth授权。当我为回调创建url并为提供程序发送查询时-提供程序正在获取下一个url: http://127.0.0.1:8080/OAuth/CallBack 但这一领域在这方面—— 如何使用当前上下文和此域? 在调试模式下,项目工作正常,因为项目名称与本地地址匹配 var helper = new UrlHelper(requestContext); var actionCallback = helper.Action("CallBack",
var helper = new UrlHelper(requestContext);
var actionCallback = helper.Action("CallBack", "OAuth", null, "http");
这对我有用
UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext);
var actionCallback = url.Action("CallBack");
我是说这个。谢谢,我已经解决了这个问题。
public Uri GetUri(Controller.HttpContext.Request request){
var request = Controller.HttpContext.Request;
string uriStr = "";
uriStr = String.Format("{0}", request.GetApplicationAbsoluteUrl);
// bad variant! but is some fix-stub
return new Uri(uriStr+"OAuth/Callback");
}
public static string GetApplicationAbsoluteUrl(this HttpRequestBase request) {
string forwardedHost;
string appPath = request.ApplicationPath ?? String.Empty;
if (appPath.Length > 0 && appPath[appPath.Length - 1] != '/')
appPath += '/';
var authority = request.Url.Host == "127.0.0.1" && (forwardedHost = request.Headers["X-Forwarded-Host"]) != null
? forwardedHost
: request.Url.Authority;
return String.Format("{0}://{1}{2}", request.Url.Scheme, authority, appPath);
}
如果使用,HttpContext无法将方法“Current”导入默认控制器。