我正在开发一个Sharepoint 2013加载项,我需要检索原始请求的查询字符串。
用户通过电子邮件链接到我们的加载项,我们需要提供一些上下文。 请求加载项如下: https://x.sharepoint.com/MyAddIn?p=10
是否可以在我的加载项中检索p的值?
答案 0 :(得分:2)
您可以使用以下代码段:
Uri myurl = new Uri(Request.QueryString["SPHostUrl"]);
string param1 = HttpUtility.ParseQueryString(myUri.Query).Get("p");
或使用
string param1 = Request.QueryString["p"];
如果您想通过JS进行此操作,请继续使用
function getQueryStringParameter(paramToRetrieve) {
var params;
var strParams;
params = document.URL.split("?")[1].split("&");
strParams = "";
for (var i = 0; i < params.length; i = i + 1) {
var singleParam = params[i].split("=");
if (singleParam[0] == paramToRetrieve)
return singleParam[1];
}
}
var sProp = decodeURIComponent(getQueryStringParameter("StringProperty1"));
document.write('Value of StringProperty1 : ' + sProp + '</br>');
答案 1 :(得分:1)
SPHostUrl绝对不应该包含您的参数,但您是否尝试过@STORM的其他建议:
string param1 = Request.QueryString["p"];
另外我认为,如果您将内置加载项查询字符串附加到您发送给用户的URL,则可以避免重定向:
http://<your-app-prefix>.domain.com/<Add In>?SPHostUrl=<host url>&SPAppUrl=<app url>&...&p=10
我加入的加载项会向用户发送包含需要上下文的链接的电子邮件,这种方法对我有用。
如果这不起作用,则您的加载项是提供程序托管或共享点托管的加载项。这些额外的信息可能会有所帮助。