GetAvailableWebTemplates 不返回任何内容

发布于 2024-12-28 13:58:32 字数 1223 浏览 0 评论 0原文

我正在尝试从网站模板创建网站,但我似乎无法获得适当的网站模板。事实上,我似乎无法获得任何网站模板。我知道已经安装了模板,因为我可以看到它们列在解决方案库中,并且它们都已激活。

我尝试了所有我能找到的方法,但我的“模板”变量仍然返回空。

foreach (SPLanguage lang in web.RegionalSettings.InstalledLanguages)
{
    foreach (SPWebTemplate template in web.Site.GetWebTemplates((uint)lang.LCID))
    {
        if (template.IsCustomTemplate)
        {
            templates.Add(template.Title, template);
        }
    }
    foreach (SPWebTemplate template in web.Site.GetCustomWebTemplates((uint)lang.LCID))
    {
        if (template.IsCustomTemplate && !templates.ContainsKey(template.Title))
        {
            templates.Add(template.Title, template);
        }
    }
    foreach (SPWebTemplate template in web.GetAvailableWebTemplates((uint)lang.LCID, true))
    {
        if (template.IsCustomTemplate && !templates.ContainsKey(template.Title))
        {
            templates.Add(template.Title, template);
        }
    }
    foreach (SPWebTemplate template in web.GetAvailableCrossLanguageWebTemplates())
    {
        if (template.IsCustomTemplate && !templates.ContainsKey(template.Title))
        {
            templates.Add(template.Title, template);
        }
    }
}

i am trying to create a site from a site template, but i cant seem to get the appropriate site template. in fact, i cant seem to get any site template. i know that there are templates installed, since i can see them listed in the solution gallery, and they are all activated.

ive tried everything i can find to try, but still my "templates" variable returns empty.

foreach (SPLanguage lang in web.RegionalSettings.InstalledLanguages)
{
    foreach (SPWebTemplate template in web.Site.GetWebTemplates((uint)lang.LCID))
    {
        if (template.IsCustomTemplate)
        {
            templates.Add(template.Title, template);
        }
    }
    foreach (SPWebTemplate template in web.Site.GetCustomWebTemplates((uint)lang.LCID))
    {
        if (template.IsCustomTemplate && !templates.ContainsKey(template.Title))
        {
            templates.Add(template.Title, template);
        }
    }
    foreach (SPWebTemplate template in web.GetAvailableWebTemplates((uint)lang.LCID, true))
    {
        if (template.IsCustomTemplate && !templates.ContainsKey(template.Title))
        {
            templates.Add(template.Title, template);
        }
    }
    foreach (SPWebTemplate template in web.GetAvailableCrossLanguageWebTemplates())
    {
        if (template.IsCustomTemplate && !templates.ContainsKey(template.Title))
        {
            templates.Add(template.Title, template);
        }
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

会发光的星星闪亮亮i 2025-01-04 13:58:32

也许 IsCustomTemplate 不是你的朋友

我尝试这个(PowerShell)
开始-SPA分配-全局
$w = Get-SPWeb -Identity 'http://............'
$ils=$w.RegionalSettings.InstalledLanguages

$ils |  %{

    $lcid = $_.LCID
    $lcid
    $wts=$w.GetAvailableWebTemplates(1031, $true)
    $wts = $wts | ?{ -not $_.IsRootWebOnly}
    $wts | ft -Property Lcid,Name,Title,DisplayCategory
}


$w=$null
Stop-SPAssignment -Global

弗罗里

maybe IsCustomTemplate is not your friend

I try this (PowerShell)
Start-SPAssignment -Global
$w = Get-SPWeb -Identity 'http://............'
$ils=$w.RegionalSettings.InstalledLanguages

$ils |  %{

    $lcid = $_.LCID
    $lcid
    $wts=$w.GetAvailableWebTemplates(1031, $true)
    $wts = $wts | ?{ -not $_.IsRootWebOnly}
    $wts | ft -Property Lcid,Name,Title,DisplayCategory
}


$w=$null
Stop-SPAssignment -Global

flori

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文