C# ASP.NET:页面HTML头部呈现
我一直在试图找出定制呈现页面的C# ASP.NET:页面HTML头部呈现,c#,asp.net,C#,Asp.net,我一直在试图找出定制呈现页面的元素的最佳方法,以消除由导致的额外换行,从而使其格式正确 到目前为止,我发现唯一有效的方法是: protected override void Render(HtmlTextWriter writer) { StringWriter stringWriter = new StringWriter(); HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWr
元素的最佳方法,以消除由
导致的额外换行,从而使其格式正确
到目前为止,我发现唯一有效的方法是:
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);
}
受保护的覆盖无效渲染(HtmlTextWriter)
{
StringWriter StringWriter=新StringWriter();
HtmlTextWriter HtmlTextWriter=新的HtmlTextWriter(stringWriter);
base.Render(htmlTextWriter);
htmlTextWriter.Close();
字符串html=stringWriter.ToString();
字符串newHTML=html.Replace(“\r\n\t”,”)
.Replace(“\r\n”,”)
.替换(“,”\n”);
writer.Write(newHTML);
}
现在我有两个问题:
我问这个问题是关于搜索引擎优化和一点完美主义。根据我的经验,使用ASP.NET表单意味着不可撤销地放弃对HTML输出的控制权。最好接受以下情况:
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);
}
- Microsoft表单控件有时会使用降价或完全错误的HTML
- Viewstate标记将始终存在,即使在页面或站点级别禁用Viewstate。显然,需要有一个视图状态来告诉ASP.NET没有视图状态
- 您不能控制表单元素。每页将有一个表单元素,它属于ASP.NET
- JavaScript将用于执行甚至是基本的任务。JavaScript将是不可读的,直接嵌入到您的页面中,并且至少有50%是无关的
- 您将无法创建页面片段,除非您通过web服务和大量乱七八糟的内容来创建。每个.aspx页面都会有
标签,而且几乎总是
标签
如果您想要对页面输出进行良好的控制,那么使用MVC或其他框架几乎是强制性的。即使是经典的ASP也能工作,但ASP.NET表单不行。为什么要去掉多余的换行符?这种完美主义尤其适用于标记代码,这只会导致您的长期痛苦。由于在渲染时空格会被折叠,所以一些额外的换行符毫无意义。+1因此,要么切换框架/语言,要么停止关注。我会等一会儿,把这个标记为答案,看看我是否能得到更多的信息。谢谢