我有一个" wierd"问题。我的输出html title元素创建了linebreakes和whitespace。
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server"></asp:ContentPlaceHolder></title>
我使用MVC 2并获得以下代码来生成我的标题元素
的Site.Master
<asp:Content ContentPlaceHolderID="TitleContent" runat="server">
<%= Html.SeoTitle(Model.MetaTitle.Trim(), Html.DefaultTitle())%>
</asp:Content>
页面(aspx)
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>
我找不到任何与我获得此结果有关的内容。有什么想法吗?
修改
应用答案将减少一个换行符,使输出看起来像下面。我可以在同一条线上制作吗?
->submenus()
答案 0 :(得分:2)
此代码会导致换行符和空格:
<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>
据我所知,这并不会影响标题的实际呈现方式。空白被删除了标题。
答案 1 :(得分:1)
在此处删除空格:
<asp:Content ContentPlaceHolderID="TitleContent" runat="server"><%= Html.SeoTitle(Model.MetaTitle.Trim(), Html.DefaultTitle())%></asp:Content>