如何使用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程序是在浏览器上执行的呢?
------解决方案--------------------你这样直接输出到浏览器显示了,这些可是要服务器解释的。