代码之家  ›  专栏  ›  技术社区  ›  David

RenderControl不计算响应。写入但是计算<%=%>?

  •  0
  • David  · 技术社区  · 15 年前

    <% Response.Write("foo") %> 但它确实能评估 <%= "bar" %>

    <%= %> was shorthand for Response.Write 因为它是在经典的ASP。

    ... <p><%= "foo" %><% Response.Write("bar"); %></p> ...
    

    呈现控制代码。。。

    string output;
    
    using (var mem = new StringWriter())
    using (var writer = new XhtmlTextWriter(mem))
    {
         page.RenderControl(writer);
         output = mem.GetStringBuilder().ToString();
    }
    

    输出。。。

    Expected: "<p>foobar</p>" 
    Actual: "<p>foo</p>"
    
    2 回复  |  直到 7 年前
        1
  •  3
  •   Ravinder Singh    15 年前

    <%=%>与回答。写在asp.net. 这就是为什么<%=“bar”%>有效的原因。

        2
  •  1
  •   Botz3000 Amir Sheng    12 年前

    我和你有同样的问题,我的解决方法就是使用 <%=...%> 而不是 response.write(); response.write() . 一旦程序到达 响应.写入() RenderControl 对象对它没有控制权,即使在服务器端标记中也是如此。