2016-01-15 32 views

risposta

2

è possibile utilizzare il seguente frammento di codice:

Uri myurl = new Uri(Request.QueryString["SPHostUrl"]); 
string param1 = HttpUtility.ParseQueryString(myUri.Query).Get("p"); 

o utilizzare

string param1 = Request.QueryString["p"]; 

Se volete questo tramite JS, poi andare avanti con questo

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

SPHostUrl non contiene le stringhe di query della richiesta originale. Quando si richiedono i componenti aggiuntivi di Sharepoint, l'utente viene reindirizzato nel processo. –

1

Lo SPHostUrl sicuramente non dovresti contenere il tuo parametro, ma hai provato l'altro suggerimento di @STORM: string param1 = Request.QueryString["p"];

Inoltre penso che potrebbe essere possibile evitare il reindirizzamento se si aggiunge il built-in add-in stringa di query per l'URL che sta inviando i vostri utenti in questo modo: http://<your-app-prefix>.domain.com/<Add In>?SPHostUrl=<host url>&SPAppUrl=<app url>&...&p=10

Gli add-in che Ho lavorato per inviare e-mail dell'utente con collegamenti che richiedono anche il contesto e questo metodo ha funzionato per me.

Se questo non funziona, il componente aggiuntivo è un componente aggiuntivo ospitato dal provider o condiviso da sharepoint. Questa informazione extra potrebbe essere utile.

+0

Request.QueryString utilizza Request.URL in basso ("l'URL corrente") e non quello originariamente richiesto prima del reindirizzamento. Dovrò testare il tuo secondo metodo, ma preferirei non dover includere SPHostUrl ecc. Perché genera URL molto lunghi. –

+0

Il componente aggiuntivo è un componente aggiuntivo ospitato. –

+0

Svolgo la maggior parte del mio lavoro on-prem, quindi non sono sicuro da dove provenga questa re-direct. La mia comprensione è che l'app richiede la stringa di query integrata per convalidare il contesto dell'utente ed è per questo che si verifica un reindirizzamento. quindi potrebbe non esserci modo di aggirare l'enorme url string.i suggerirei inoltre di assicurarti che il link che dai ai tuoi utenti sia indirizzato direttamente alla posizione della pagina nel ** web app ** e _non il ** host ** web . questo potrebbe anche essere la causa del reindirizzamento. non penso che questo sia un grosso problema dato che puoi semplicemente usare un tag 'a' in una email per presentare il link – nerdondon