首先我们找到这个类。

这个类有如下的方法:

 #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>.

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

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

    下面是代码: public virtual IHtmlString Meta() { AggregateHtmlString htmlStrings = new AggregateHtmlString ...

  2. Kooboo CMS - Html.FrontHtml.Position 详解

    DataContract 数据契约 http://www.cnblogs.com/Gavinzhao/archive/2010/06/01/1748736.html https://msdn.micr ...

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

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

  4. CMS垃圾收集器深入详解

    上一次[https://www.cnblogs.com/webor2006/p/11048407.html]对安全点和安全区进行了理论化的了解,接下来继续对CMS进行其它理论的了解,还是纯理论!!坚持 ...

  5. Kooboo CMS 之TextContent详解

    TextCotent 在Kooboo.CMS.Content下面,在View中有使用到这个模型层. TextContent继承了ContentBase,而ContentBase是由2个部分类组成的,一 ...

  6. GC:并行回收CMS详解

    CMS详解 https://www.cnblogs.com/ggjucheng/p/3977612.html CMS默认不回收Perm, 需要加参数 +CMSPermGenSweepingEnable ...

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

    很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从中学习很多企业系统.软件开发的规范和一些新的技术.技巧,可以快速地提高我们 ...

  8. Kooboo CMS 无聊随笔(2)

    上次写了一篇博客 http://www.cnblogs.com/kmsfan/p/Kooboo_CMS_suibi.html 作为这个系列的开篇,简单的介绍了一下Kooboo CMS的一些基本情况和界 ...

  9. Kooboo CMS技术文档之五:站点配置管理

    站点关系 管理站点间的关系,站点可以有子站点,子站点继承父站点的部分配置数据,同时子站点还可以根据需要,本地化由父站点继承而来的数据.通过继承和本地化,可以让子站点在用最小的改动代价,来完成一个与父站 ...

随机推荐

  1. mailto

    什么是mailto链接? mailto链接是一种html链接,能够设置你电脑中邮件的默认发送信息.但是需要你电脑中安装默认的E-mail软件,类似Microsoft Outlook等等.加入您已经安装 ...

  2. HDU 2202 计算几何

    最大三角形 Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. hadoop分布式存储(2)-hadoop的安装(毕业设计)

    总共分三步:1.准备linux环境 租用"云主机",阿里云,unitedStack等,云主机不受本机性能影响(或者直接安转linux操作系统或者虚拟机也行): PuTTy Conf ...

  4. Altium Designer之AD16在Win10系统下无法切换走线/布线模式的解决办法

    有些童鞋会在Win10下使用AD16的时候发现,走线模式/布线模式(切换直角,45°,弧形等)不能切换. 问题出在输入法上,一般是切换到英文输入法即可解决,但是有一种情况是win10系统自带输入法有时 ...

  5. 在cmd命令行使用Maven Archetype插件 generate命令创建简单的java web项目

    前提: 1.下载apache-maven:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache ...

  6. CentOS6.4安装JDK1.7

    安装说明 1.安装环境: CentOS6.4 64位系统 2.安装方式:rpm安装 3.软 件 包:jdk-7u71-linux-x64.rpm 4.下载地址:http://www.oracle.co ...

  7. error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

    zabbix3.2启动有如下报错: # service zabbix_server startStarting zabbix_server:  /home/zabbix-server/sbin/zab ...

  8. Android知识杂记(四)

    1.完整退出activity的设计思路 1.1 封装一个基础activity类 public abstract class RootActivity extends FragmentActivity{ ...

  9. MySQL 处理插入过程中的主键唯一键重复值办法

    200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到I ...

  10. MapReduce剖析笔记之二:Job提交的过程

    上一节以WordCount分析了MapReduce的基本执行流程,但并没有从框架上进行分析,这一部分工作在后续慢慢补充.这一节,先剖析一下作业提交过程. 在分析之前,我们先进行一下粗略的思考,如果要我 ...