Ich sehe ein wirklich seltsames Problem mit Asp.net-Rendering. Ich habe genau dies in den relevanten Teil der .aspx (nur ersetzt Namen der Pfade und Steuerelemente):
<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>
das gerenderte HTML sieht so aus:
<!-- bla1 -->
""
expected content from strangeBehavingControl
<!-- bla2 -->
das .ascx für strangeBehavingControl ist wirklich einfach:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="strangeBehavingControl.ascx.cs" Inherits="layouts.strangeBehavingControl" %>
keine zusätzlichen Leerzeichen irgendwo, bereits viele Male überprüft. der Code dahinter ist auch wirklich einfach:
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);
}
}
so dachte ich, dass die seltsame "" wo innerhalb der gerenderten enthaltenen Dateien, aber ich überprüfte sie manuell und sie beginnen mit den erwarteten Zeichen. jede Idee, wie diese Zeichen dort eingefügt werden kann?