Asp.net mvc 提供程序托管的asp.net mvc应用程序上载文件

Asp.net mvc 提供程序托管的asp.net mvc应用程序上载文件,asp.net-mvc,image-uploading,sharepoint-online,sharepoint-apps,provider-hosted,Asp.net Mvc,Image Uploading,Sharepoint Online,Sharepoint Apps,Provider Hosted,我正在尝试创建一个简单的帖子,其中我还使用Sharepoint online上的提供商托管应用程序附加了一个图像,但我无法在HttpContext.Request中的控制器处获取SPHostUrl,我的意思是HttpContext.Request中缺少SPHostUrl [HttpPost] public ActionResult Contact(SimplePostModel model,HttpPostedFileBase file) {} 看法 问题是,如果在上述视图语

我正在尝试创建一个简单的帖子,其中我还使用Sharepoint online上的提供商托管应用程序附加了一个图像,但我无法在HttpContext.Request中的控制器处获取SPHostUrl,我的意思是HttpContext.Request中缺少SPHostUrl

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

问题是,如果在上述视图语句中发送此部分
new{enctype=“multipart/form data”}
,则无法在HttpContext.Request中获取SPHostUrl参数

 [HttpPost]
    public ActionResult Contact(SimplePostModel model,HttpPostedFileBase file)
    {}
如果我没有发送html属性,那么我可以在HttpContext.Request中获取SPHostUrl参数。没有html属性,我也无法上传文件


提前感谢您的帮助。

通过在Razor视图中更改上的某些代码,我已经解决了这个问题

@using (Html.BeginForm("Contact","Home",null,FormMethod.Post,new { enctype= "multipart/form-data"}))
我发送spHosturl,而不是对象路由值的null,如下所示

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

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

我希望这将有助于新的sharepoint online开发人员