gpt4 book ai didi

c# - ASP.NET:页面 HTML 头部渲染

转载 作者:太空狗 更新时间:2023-10-30 01:11:26 26 4
gpt4 key购买 nike

我一直在尝试找出自定义呈现 <head> 的最佳方式页面元素以去除由 <head runat="server"> 引起的额外换行符, 所以它的格式正确。

到目前为止,我发现唯一有效的是:

    protected override void Render(HtmlTextWriter writer)
{
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlTextWriter);
htmlTextWriter.Close();
string html = stringWriter.ToString();
string newHTML = html.Replace("<title>\r\n\t", "<title>")
.Replace("\r\n</title>", "</title>")
.Replace("</head>", "\n</head>");

writer.Write(newHTML);
}

现在我有两个问题:

  1. 上述代码如何影响性能(这在生产环境中是否可行)?
  2. 有没有更好的方法来做到这一点,例如我可以覆盖的方法来自定义呈现 <head>

哦,是的,ASP.NET MVC 不是一个选项。

编辑:

我问的是关于 SEO 和一点点完美主义的问题。

最佳答案

根据我的经验,使用 ASP.NET Forms 意味着不可撤销地放弃对 HTML 输出的控制。最好接受以下内容:

  • Microsoft 表单控件有时会使用贬值的或完全错误的 HTML。
  • Viewstate 标记将始终存在,即使在页面或站点级别禁用 ViewState 时也是如此。显然,需要有一个 ViewState 来告诉 ASP.NET 没有 View 状态。
  • 无法控制表单元素。每个页面将有一个表单元素,它属于 ASP.NET。
  • JavaScript 将用于执行最基本的任务。 JavaScript 将不可读,直接嵌入到您的页面中,其中至少有 50% 是无关的。
  • 您将无法创建页面片段,除非您通过网络服务和大量的拼凑来完成。每个 .aspx 页面都有 <html> <head>几乎总是<form>标签。

如果您想要精细控制页面输出,使用 MVC 或其他框架几乎是强制性的。即使是经典的 ASP 也可以,但 ASP.NET Forms 不行。

关于c# - ASP.NET:页面 HTML 头部渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2559820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com