gpt4 book ai didi

asp.net - asp.net 控件之前 html 中奇怪的 ""引号

转载 作者:搜寻专家 更新时间:2023-10-31 23:10:08 25 4
gpt4 key购买 nike

我发现 asp.net 呈现有一个非常奇怪的问题。我在 .aspx 的相关部分中确实有这个(只是替换了路径和控件的名称):

<div id="header">
<% if (SiteSettings.SiteName.Equals("sx") || SiteSettings.SiteName.Equals("sw"))
{ %>
<sc:sublayout runat="server" renderingid="{B04CFA1A-6B5B-49D3-8000-339DBE9899C1}"
path="/layouts/AX/HeaderSublayout.ascx" id="AXHeader" placeholder="content"></sc:sublayout>
<% }
else
{ %><!-- bla1 --><ax:strangeBehavingControl id="HeaderInclude" runat="server" IncludeType="Header" /><!-- bla2 -->
<% } %>
</div>

呈现的 html 看起来像:

<!-- bla1 -->
""
expected content from strangeBehavingControl
<!-- bla2 -->

strangeBehavingControl 的 .ascx 非常简单:

<%@ 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);
}
}

所以我在想奇怪的“”在呈现的包含文件中,但我手动检查了它们并且它们以预期的字符开头。知道如何将这些字符插入到那里吗?

最佳答案

您为控件生成的标记不正确。您的呈现方法应该使用提供给它的 HtmlTextWriter 实例,并且Response 上使用任何直接输出写入方法。

它看起来也像是一个相当奇怪的设置,因为您将内容写为 UserControl,这意味着它将在页面中呈现。假设您总是输出有效的 HTML 或纯文本是否正确?

我建议您按如下方式更改Render 方法:

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());
}

关于asp.net - asp.net 控件之前 html 中奇怪的 ""引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644594/

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