Kooboo CMS - @Html.FrontHtml().HtmlTitle() 详解

首先我们找到这个类。

这个类有如下的方法:

 #region Title & meta
        [Obsolete("Use HtmlTitle")]
        public IHtmlString Title()
        {
            return HtmlTitle();
        }
        /// <summary>
        /// HTMLs the title.
        /// </summary>
        /// <returns></returns>
        public virtual IHtmlString HtmlTitle()
        {
            return HtmlTitle(null);
        }
        /// <summary>
        /// HTMLs the title.
        /// </summary>
        /// <param name="defaultTitle">The HTML title.</param>
        /// <returns></returns>
        public virtual IHtmlString HtmlTitle(string defaultTitle)
        {
            var title = string.IsNullOrEmpty(this.PageContext.HtmlMeta.HtmlTitle) ? defaultTitle : this.PageContext.HtmlMeta.HtmlTitle;
            if (!string.IsNullOrEmpty(title))
            {
                return new HtmlString(string.Format("<title>{0}</title>", Kooboo.StringExtensions.StripAllTags(title)));
            }
            return new HtmlString("");
        }

其实我觉得大家有必要了解下IHtmlString这个接口。

这个接口不是出自于CMS,而是系统内定义的。

using System;

namespace System.Web
{
    // 摘要:
    //     表示不应再次进行编码的 HTML 编码的字符串。
    public interface IHtmlString
    {
        // 摘要:
        //     返回 HTML 编码的字符串。
        //
        // 返回结果:
        //     HTML 编码的字符串。
        string ToHtmlString();
    }
}

  关于这个接口的详细介绍我在网上也搜了一个,是MSDN上面的。不知道谁还有更详细的资料?

下面是里面的最重要的一个方法:

        public virtual IHtmlString HtmlTitle(string defaultTitle)
        {

            var title = string.IsNullOrEmpty(this.PageContext.HtmlMeta.HtmlTitle) ? defaultTitle : this.PageContext.HtmlMeta.HtmlTitle;
            if (!string.IsNullOrEmpty(title))
            {
                return new HtmlString(string.Format("<title>{0}</title>", Kooboo.StringExtensions.StripAllTags(title)));
            }
            return new HtmlString("");
        }

  上面的代码的意思是,如果当前上下文HtmlMeta.HtmlTitle为空,那么就取带入的标题。但是如果defaultTitle和HtmlMeta.HtmlTitle都为空的话,那么就返回空字符串。否则执行<title>{0}</title>.

时间: 2024-10-03 22:27:13

Kooboo CMS - @Html.FrontHtml().HtmlTitle() 详解的相关文章

Kooboo CMS - @Html.FrontHtml().Meta()详解。

下面是代码: public virtual IHtmlString Meta() { AggregateHtmlString htmlStrings = new AggregateHtmlString(); var htmlMeta = this.PageContext.HtmlMeta; if (htmlMeta != null) { if (!string.IsNullOrEmpty(htmlMeta.Canonical)) { htmlStrings.Add(new HtmlString(

Kooboo CMS - Html.FrontHtml.Position 详解

DataContract 数据契约 http://www.cnblogs.com/Gavinzhao/archive/2010/06/01/1748736.html https://msdn.microsoft.com/zh-cn/library/system.runtime.serialization.datacontractattribute.aspx Html.FrontHtml.Position("main") 详解 1.首先我们打开工程文件,在搜索框里写上FrontHtml查

Kooboo CMS - Html.FrontHtml[Helper.cs] 各个方法详解

下面罗列了方法详解,每一个方法一篇文章. Kooboo CMS - @Html.FrontHtml().HtmlTitle() 详解 Kooboo CMS - Html.FrontHtml.Position 详解 Kooboo CMS - @Html.FrontHtml().Meta()详解

Kooboo CMS 之TextContent详解

TextCotent 在Kooboo.CMS.Content下面,在View中有使用到这个模型层. TextContent继承了ContentBase,而ContentBase是由2个部分类组成的,一个是内容对象基类的子类,另一个是实现了持久化.那...我们该如何去理解呢,这里我用PS画一幅图大家就懂了.TextContent有3个构造函数,其中这2个构造函数都和基类(ContentBase)有关系.这3个构造函数分别如下: /// <summary> /// Initializes a ne

【转帖】CMS垃圾回收器详解

CMS垃圾回收器详解 https://www.jianshu.com/p/08f0b85ad665 垃圾回收器组合 垃圾回收器从线程运行情况分类有三种: 串行回收,Serial回收器,单线程回收,全程stw: 并行回收,名称以Parallel开头的回收器,多线程回收,全程stw: 并发回收,cms与G1,多线程分阶段回收,只有某阶段会stw: CMS垃圾回收 CMS垃圾回收特点 cms只会回收老年代和永久带(1.8开始为元数据区,需要设置CMSClassUnloadingEnabled),不会收

NopCommerce源码架构详解--初识高性能的开源商城系统cms

很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从中学习很多企业系统.软件开发的规范和一些新的技术.技巧,可以快速地提高我们的技术能力.所以我最近决定写一个“NopCommerce源码架构详解”的系列,来详细剖析NopCommerce的架构和原理. Nopcommerce主要用到的技术及特点: 1.Entity Framework 2.ASP.NET mvc 3.IoC容器+依赖注入(Autofac) 4.使用EF中的E

Java虚拟机详解——JVM常见问题总结

[正文] 声明:本文只是做一个总结,有关jvm的详细知识可以参考之前的系列文章,尤其是那篇:Java虚拟机详解04--GC算法和种类.那篇文章和本文是面试时的重点. 面试必问关键词:JVM垃圾回收.类加载机制. 先把本文的目录画一个思维导图:(图的源文件在本文末尾) 一.Java引用的四种状态: 强引用:  用的最广.我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它,这就是强引用. * 如果一个对象具有强引用,那垃圾回收器绝不会回收它*.当内存空间不足,Java虚拟机宁

自动化运维平台之系统自动化安装Cobbler系统使用详解

一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 二.cobbler提供的功能 使用

面向接口编程详解(三)——模式研究

通过前面两篇,我想各位朋友对“面向接口编程”的思想有了一定认识,并通过第二篇的例子,获得了一定的直观印象.但是,第二篇中的例子旨在展示面向接口编程的实现方法,比较简单,不能体现出面向接口编程的优势和这种思想的内涵.那么,这一篇作为本系列的终结篇,将通过分析几个比较有深度的模式或架构,解析隐藏其背后的面向接口思想.这篇我将要分析的分别是MVC模式和.NET平台的分层架构. 这篇的内容可能会比较抽象,望谅解. 1.从MVC开始 MVC简介: 本文不打算详细解释MVC架构,而是把重点放在其中的面向接口