首先我们找到这个类。

这个类有如下的方法:

 #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. *HDU2254 矩阵乘法

    奥运 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...

  2. Allegro之测量时显示两种单位(mil & mm)

    首先确认你工程默认的单位是mil还是mm 例子为mils 在下面的选项中选择另外一项mm即可(如本身是mm,这里选择mils) 点击Apply,然后OK,操作测量功能,如下图所以效果:

  3. Xcode插件管理工具Alcatraz

    1.简介 Alcatraz是一个能帮你管理Xcode插件丶模版及颜色配置的工具.它可以直接集成在Xcode的图形界面中,让你感觉就像在使用Xcode自带的功能一样. 2.安装和删除 使用如下的终端来安 ...

  4. 热门的PHP框架

    每个PHP框架都拥有各自独特的地方.同时PHP语言已经获得了巨大的认同并且成为了世界上最通用的服务器脚本语言.PHP也俨然成为了最容易学习的web动态开发语言.在PHP发展的同时,PHP框架也迅速崛起 ...

  5. ES6(四) --- 正则 Number Math

    想学vue了  重启ES6的学习之路 在ES5 中正则的构造器  RegExp  不支持第二个参数 ES6 做了调整   第二个参数表示正则表达式的修饰符(flag) var regex = new ...

  6. PHP基础知识之字符串运算符

    两个字符串相加用 . 运算符(类似于+),如$a="str1" . "str2";$b=$a . "str3";=>"str ...

  7. 初涉深度优先搜索--Java学习笔记(二)

    版权声明: 本文由Faye_Zuo发布于http://www.cnblogs.com/zuofeiyi/, 本文可以被全部的转载或者部分使用,但请注明出处. 上周学习了数组和链表,有点基础了解以后,这 ...

  8. Oracle_R12C_安装注意点_Win64_exectask

    安装问题1 原因 - 无法访问临时位置. 操作 - 请确保当前用户具有访问临时位置所需的权限. 附加信息: - 所有节点上的框架设置检查都失败 -原因: 问题的原因不可用 -操作:用户操作不可用 失败 ...

  9. 当我谈 "加班有罪" 我在谈什么?

    前言 PS. 本文只描述IT行业. 博客园果真人气比较高,我之前准备写个 "领域驱动系列",然后感觉大家不感兴趣,看来用的人不多,所以一直没动力续,但是昨天写了 [加班有罪] (h ...

  10. 现在创业做App,先做 Android 还是 iOS?

    随着互联网+的高速发展,现在创业大部分都是在布局移动端,初期往往摆在面前最大的难题是,如何分配有限的成本,在最快的速度内占领市场?这个大难题会影响创始人在团队和产品建设方方面面的决定.缩小至移动App ...