“奇怪”&引用;asp.net控件之前的html引号
我发现asp.net渲染存在一个非常奇怪的问题。我在.aspx的相关部分(刚刚替换了路径和控件的名称)中有这一点:“奇怪”&引用;asp.net控件之前的html引号,asp.net,html,custom-controls,Asp.net,Html,Custom Controls,我发现asp.net渲染存在一个非常奇怪的问题。我在.aspx的相关部分(刚刚替换了路径和控件的名称)中有这一点: 因此,我认为渲染中奇怪的“”包含文件,但我手动检查了它们,它们以预期的字符开始。你知道这些字符是如何插入的吗?你为控件生成的标记不正确。渲染方法应该使用给定给它的HtmlTextWriter实例,而不是在Response上使用任何直接输出写入方法 它看起来也是一个相当奇怪的设置,因为您将内容写成用户控件,这意味着它将在页面中呈现。假设您总是输出有效的HTML或纯文本是正确的吗 我建
因此,我认为渲染中奇怪的“”包含文件,但我手动检查了它们,它们以预期的字符开始。你知道这些字符是如何插入的吗?你为控件生成的标记不正确。渲染方法应该使用给定给它的
HtmlTextWriter
实例,而不是在Response
上使用任何直接输出写入方法
它看起来也是一个相当奇怪的设置,因为您将内容写成用户控件
,这意味着它将在页面中呈现。假设您总是输出有效的HTML或纯文本是正确的吗
我建议您更改渲染方法,如下所示:
protected override void Render(HtmlTextWriter writer)
{
var filePath = GetFilePath();
if (!string.IsNullOrWhiteSpace(filePath) && File.Exists(Server.MapPath(filePath)))
using (var sr = new StreamReader(filePath))
writer.Write(sr.ReadToEnd());
}
有时控制文件有另一个字符集。
请确认文件开头没有多余的字符,如果有,请删除这些字符。
您可能需要使用智能文本编辑器来实现这一点
我也遇到了同样的额外空间问题,但我的控件没有实现Render()
方法。“基本上,我在.aspx中有类似的内容:”“早上先试试,谢谢!是的,我们总是输出由另一个团队创建的有效HTML标题
<!-- bla1 -->
""
expected content from strangeBehavingControl
<!-- bla2 -->
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="strangeBehavingControl.ascx.cs" Inherits="layouts.strangeBehavingControl" %>
public partial class strangeBehavingControl: System.Web.UI.UserControl
{
protected override void Render(HtmlTextWriter writer)
{
var filePath = GetFilePath();
if (!string.IsNullOrWhiteSpace(filePath) && File.Exists(Server.MapPath(filePath)))
Response.WriteFile(filePath);
}
}
protected override void Render(HtmlTextWriter writer)
{
var filePath = GetFilePath();
if (!string.IsNullOrWhiteSpace(filePath) && File.Exists(Server.MapPath(filePath)))
using (var sr = new StreamReader(filePath))
writer.Write(sr.ReadToEnd());
}