Asp.net 如何从来自API的URL而不是当前请求中获取查询字符串中的#值

Asp.net 如何从来自API的URL而不是当前请求中获取查询字符串中的#值,asp.net,Asp.net,我使用facebook api获得返回的url: 但我不知道如何获得令牌值?因为它不在查询字符串或Request.url中 有任何帮助吗?如果在当前请求中传递了此信息,则无法提供帮助,因为#之后的任何内容都不会发送到服务器 您可以在JavaScript中捕获它并使用AJAX将其发送到服务器,但这将根据不同的请求进行 如果您的意思是此URL不是来自当前请求,则可以使用Uri类解析完整URL并获取片段: var fragment = new Uri(theUri).Fragment; var t

我使用facebook api获得返回的url:

但我不知道如何获得令牌值?因为它不在查询字符串或Request.url中


有任何帮助吗?

如果在当前请求中传递了此信息,则无法提供帮助,因为
#
之后的任何内容都不会发送到服务器

您可以在JavaScript中捕获它并使用AJAX将其发送到服务器,但这将根据不同的请求进行


如果您的意思是此URL不是来自当前请求,则可以使用
Uri
类解析完整URL并获取片段:

var fragment = new Uri(theUri).Fragment;
var token = fragment.Split(new [] {'&','='}, StringSplitOptions.None)[1];
您可以使用解析URL,然后通过名称获取值,例如

NameValueCollection query = HttpUtility.ParseQueryString(querystring);
string token = query["token"];
检查这个

您无法从服务器端获取它,您需要先从客户端获取if,然后在隐藏字段或类似内容中将其传递给服务器,您必须查找“%23”,因为“#”是url编码为“%23”的

参考:


但您还必须知道,服务器端不提供锚定

这在服务器端是如何工作的?对于
#
之后的值,OP声明URL是从api服务器返回的,它没有提到该URL是当前请求的任何内容。这仍然需要进一步处理,
片段
属性将返回
#
之后的所有内容,因此OP仍然需要解析字符串。我确实认为这种场景的首选方法是使用
ParseQueryString
。是的,我认为javascript和ajax是最直接的方法@感谢您提出我使用javascript和ajax来完成它的想法!