从单个Url打开SPWeb

Dan*_*ell 11 sharepoint

当我想要访问网络时,我通常必须执行以下代码,这些代码相当自我解释.

using (SPSite site = new SPSite(siteUrl))
            {
                SPWeb web = null;

                if (string.IsNullOrEmpty(webName))
                    web = site.RootWeb;
                else
                    web = site.AllWebs[webName];
                ...
                web.Close();
            }
Run Code Online (Sandbox Code Playgroud)

给出一个直接指向网站的网址:

所以在这种情况下,siteUrl将是:http:// localhost/sites/testsite

和webName将是:testWeb

我想简单地从用户那里得到一些与这两个单独位相对的信息,即直接到网址的URL:http:// localhost/sites/testsite/testweb /

我想使用此URL打开Web,而不必手动指定Web名称.我玩过site.OpenWeb并尝试将url传递给它,但它不喜欢这样.它只需要服务器相对URL.有没有办法只是能够从用户那里获得一个网址,以便打开网络,而不是将网址分开并假设最后一点可能是也可能不是网络的名称,这取决于我们是否"是否会访问根网站,但这会使代码更糟糕.

Flo*_*Flo 35

您不需要拆分绝对SPWeb URL来访问SPWeb.您可以简单地执行以下操作.

using (SPSite site = new SPSite(<url to spweb>))
{
      using(SPWeb web = site.OpenWeb())
      {
         // put your code here ...
      }
}
Run Code Online (Sandbox Code Playgroud)