Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“奇怪”&引用;asp.net控件之前的html引号_Asp.net_Html_Custom Controls - Fatal编程技术网

“奇怪”&引用;asp.net控件之前的html引号

“奇怪”&引用;asp.net控件之前的html引号,asp.net,html,custom-controls,Asp.net,Html,Custom Controls,我发现asp.net渲染存在一个非常奇怪的问题。我在.aspx的相关部分(刚刚替换了路径和控件的名称)中有这一点: 因此,我认为渲染中奇怪的“”包含文件,但我手动检查了它们,它们以预期的字符开始。你知道这些字符是如何插入的吗?你为控件生成的标记不正确。渲染方法应该使用给定给它的HtmlTextWriter实例,而不是在Response上使用任何直接输出写入方法 它看起来也是一个相当奇怪的设置,因为您将内容写成用户控件,这意味着它将在页面中呈现。假设您总是输出有效的HTML或纯文本是正确的吗 我建

我发现asp.net渲染存在一个非常奇怪的问题。我在.aspx的相关部分(刚刚替换了路径和控件的名称)中有这一点:


因此,我认为渲染中奇怪的“”包含文件,但我手动检查了它们,它们以预期的字符开始。你知道这些字符是如何插入的吗?

你为控件生成的标记不正确。渲染方法应该使用给定给它的
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());
}