【问题标题】:Showing XML content on on an Umbraco webpage with Masterpages (for sitemap)在带有 Masterpages 的 Umbraco 网页上显示 XML 内容(用于站点地图)
【发布时间】:2017-02-14 15:23:15
【问题描述】:

我正在运行 Umbraco 的多站点实例。一切顺利,但现在我需要创建一个站点地图。

我已经成功创建了显示完美 XML 格式站点地图的宏,但是....

我不知道如何在页面上显示正确的标题。现在它看起来像这样:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
</head>
<body>
   <form method="post" action="./sitemap" id="form1">
     <div class="aspNetHidden">
         <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="faEtomis/pJrnOEH1FjMt3tYgJgnPP8lddqb60IlljFoqaMzmdGrfFsw4WeF9tCiqAa6bpN0obMQKnBNa1OmWHYSPuVgJB8116lnS+3eY95EqMoOpeTPa8jbsUSJXzXx" />
     </div>
     <div>
       <url>
          <loc>https://www.example.com/</loc>;
          <lastmod>2017-02-12T17:41:48+00:00</lastmod>
       </url>
     </div>
     <div class="aspNetHidden">
        <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="CA0B0334" />
     </div>
</form>
</body>
</html>

显然,这不是格式正确的 XML 站点地图文件。

我的问题是 umbraco/default.master 必须具有基本的 html、head、body 标签才能允许 ContentPlaceHolder 让我的模板工作。

我可以做些什么来完成这项工作?

【问题讨论】:

    标签: .net webforms umbraco umbraco7


    【解决方案1】:

    您的 Sitemap.Master 模板(或您用来放置站点地图 xml 结构的任何模板)不必继承自默认 Umbraco MasterPage 以外的任何内容,该模板不应包含任何 HTML 标记。例如,Umbraco 的库存标准安装具有以下 /Umbraco/MasterPages/Default.Master:

    <%@ Master Language="C#" AutoEventWireup="True" CodeBehind="Default.master.cs" Inherits="Umbraco.Web.UI.Umbraco.Masterpages.Default" %>
    <asp:ContentPlaceHolder ID="ContentPlaceHolderDefault" runat="server">
    </asp:ContentPlaceHolder>
    

    值得注意的是,如果您确实在使用 Umbraco 7(或 6),您可以使用 MVC 而不是 MasterPages 创建一个模板,它仍然可以工作。

    如需更详细的答案,请分享您当前的站点地图母版页模板和结构...

    【讨论】:

    • 谢谢。它工作得很好。我已经尝试过了,但是当 Visual Studio 想要它无法识别 asp 前缀标签时没有遵循
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多