我遇到了一个“奇怪”的问题。我的输出 html 标题元素会创建换行符和空格。
<title>
Title | Brand name
</title>
我使用 MVC 2 并获得以下代码来生成我的标题元素
Site.Master
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server"></asp:ContentPlaceHolder></title>
页面 (aspx)
<asp:Content ContentPlaceHolderID="TitleContent" runat="server">
<%= Html.SeoTitle(Model.MetaTitle.Trim(), Html.DefaultTitle())%>
</asp:Content>
helper
public static string SeoTitle(this HtmlHelper helper, string title, string separator, bool siteNameLast, string fallbackTitle)
{
var siteName = SiteName(helper);
title = !string.IsNullOrEmpty(title) ? title : fallbackTitle;
if (string.IsNullOrEmpty(siteName))
return title;
title = title.TextToEntity();
title = siteNameLast ? string.Format("{0} {1} {2}", title, separator, siteName) : string.Format("{0} {1} {2}", siteName, separator, title);
return title;
}
我找不到任何与我得到这个结果的原因相关的信息。有什么想法吗?
编辑
应用答案将减少一个换行符,使输出如下所示。我可以在同一条线上吗?
<title>
title | brand name
</title>
最佳答案
此代码会导致换行符和空格:
<asp:Content ContentPlaceHolderID="TitleContent" runat="server">
<%= Html.SeoTitle(Model.MetaTitle.Trim(), Html.DefaultTitle())%>
</asp:Content>
如果您去掉它们的开始和结束标签,您仍然以换行符开始和结束。
(removed tag, still whitespace hereafter)
<%= Html.SeoTitle(Model.MetaTitle.Trim(), Html.DefaultTitle())%>
(removed tag, still whitespace before)
所以解决方案是立即开始 asp:Content
标记的内部内容,不换行进行布局。
<asp:Content ContentPlaceHolderID="TitleContent" runat="server"><%= Html.SeoTitle(Model.MetaTitle.Trim(), Html.DefaultTitle())%></asp:Content>
据我所知,这不会影响标题的实际呈现方式。标题中的空白被删除。
关于c# - 删除标题中的空格(头部),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34606292/