0

Je suis en train de créer un message simple dans lequel je joins également une image en utilisant Provider Hosted App sur Sharepoint en ligne, et je ne suis pas en mesure d'obtenir SPHostUrl chez Controller dans HttpContext.Request , Je veux dire SPHostUrl est manquant dans HttpContext.Request.Fournisseur hébergé asp.net mvc app télécharger le fichier

[HttpPost] 
    public ActionResult Contact(SimplePostModel model,HttpPostedFileBase file) 
    {} 

Voir

@using (Html.BeginForm("Contact","Home",null,FormMethod.Post,new { enctype= "multipart/form-data"})) 

La question est de savoir si j'envoie cette partie new { enctype= "multipart/form-data"} dans la déclaration mentionnée ci-dessus de vue, je ne suis pas en mesure d'obtenir le paramètre SPHostUrl dans HttpContext.Request.

Si je n'envoie pas les attributs html, alors je peux obtenir le paramètre SPHostUrl dans HttpContext.Request. et sans les attributs HTML, je ne suis pas non plus en mesure de télécharger un fichier.

Merci d'avance pour votre aide.

Répondre

0

J'ai résolu le problème en changeant un morceau de code dans la vue Razor.

@using (Html.BeginForm("Contact","Home",null,FormMethod.Post,new { enctype= "multipart/form-data"})) 

Au lieu de null pour les valeurs de route d'objet, j'envoie le spHosturl comme ci-dessous.

@using (Html.BeginForm("Contact","Home",new { SPHostUrl = spUrl },FormMethod.Post,new { enctype = "multipart/form-data" })) 

la valeur spurl est comme ci-dessous

@{ 
var spUrl = Request.QueryString["SPHostUrl"]; 

}

J'espère que cela aidera les développeurs pour les nouveaux sharepoint en ligne