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 -->
おかしなBehavingControlの.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);
}
}
レンダリングされたインクルードファイルの中に奇妙な「」があると思っていたのですが、手動でチェックしたところ、期待される文字で始まりました。それらのキャラクターをそこにどのように挿入することができますか?