日期:2014-05-17  浏览次数:21014 次

如何使用response.write输出<%@ Page Language="C#" MasterPageFile="~/MasterPage.mast %>
想在 Page_Load 中使用 response.write控制所有页面的输出。

  Response.Clear();
  StringBuilder builder = new StringBuilder();
  builder.Append("<%@ Page Language=\"C#\" MasterPageFile=\"~/MasterPage.master\" AutoEventWireup=\"true\" CodeFile=\"Default.aspx.cs\" Inherits=\"_Default\" %>");
  builder.Append("<asp:Content ID=\"Content1\" ContentPlaceHolderID=\"head\" Runat=\"Server\">");
  builder.Append("</asp:Content>");
  builder.Append("<asp:Content ID=\"Content2\" ContentPlaceHolderID=\"ContentPlaceHolder11\" Runat=\"Server\">");
  builder.Append("<h1>测试页面</h1>");
  builder.Append("</asp:Content>");
  Response.Write(builder.ToString());
  Response.End();

为什么 builder.Append("<%@ Page 这句无法执行,那页面的头应如何输出。

如果页面中有 object 也可以这样输出吗?
response.write("<object id=...></object>")

------解决方案--------------------
把builder.Append里面的中间部分的双引号改成单引号
但是你这样response出来,是执行不出来,只是印在浏览器上
------解决方案--------------------
你要做什么? 这是行不通的。
------解决方案--------------------
那个东西输出又有什么用?浏览器根本不认识,asp.net才认识。Response.Write输出的是浏览器端代码,给浏览器看的。

你一定要看到的话,写成Response.Write(Server.HtmlEncode(builder.ToString()));
------解决方案--------------------
谁告诉你asp.net程序是在浏览器上执行的呢?
------解决方案--------------------
你这样直接输出到浏览器显示了,这些可是要服务器解释的。