我想从提供商托管的应用程序更改主机web的url。基本上,在我的提供商托管应用程序中完成一些业务逻辑后,我想导航到SharePoint门户的另一个页面(例如搜索中心页面)。
当我执行"response.redirect"或"window.locationhref"时,它正在App iframe中加载。我想在主窗口中加载相同的页面。
请提出建议。
使用我的逻辑进行更新 我有一个通用的方法来获得列表主页url
public string ListHomePage(ClientContext clientContext, string listName)
{
Web spWeb = clientContext.Web;
clientContext.Load(spWeb, web => web.Url);
clientContext.ExecuteQuery();
return TokenHelper.GetAppContextTokenRequestUrl(spWeb.Url, HttpContext.Current.Server.UrlEncode(spWeb.Url + "/Lists/" + listName));
}
我正在应用程序页面中调用以下代码。
Response.Redirect(ListHomePage(clientContext1, "Test ListName"));
当AppPart在iframe 中加载时,使用以下代码可以实现相同的效果
string redirectUrl = ListHomePage(clientContext1, "Test ListName");
string script = "<script type='text/javascript'>window.parent.location.href = '" + redirectUrl + "'; </script>";
//Here I am using Telerik ScriptManager to execute script
RadScriptManager.RegisterStartupScript(this, this.GetType(), "Load", script, false);