在sharepoint加载项中检索查询字符串

时间:2016-01-15 19:51:57

标签: sharepoint sharepoint-2013 sharepoint-apps

我正在开发一个Sharepoint 2013加载项,我需要检索原始请求的查询字符串。

用户通过电子邮件链接到我们的加载项,我们需要提供一些上下文。 请求加载项如下: https://x.sharepoint.com/MyAddIn?p=10

是否可以在我的加载项中检索p的值?

2 个答案:

答案 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

我加入的加载项会向用户发送包含需要上下文的链接的电子邮件,这种方法对我有用。

如果这不起作用,则您的加载项是提供程序托管或共享点托管的加载项。这些额外的信息可能会有所帮助。

相关问题