这个问题很可能有一个简单的解决方案,但我无法弄清楚。我有一个带有以下代码的.aspx页面:
<%@ Page Title="Update ASV Information" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="UpdateASV.aspx.cs" Inherits="COAF_Process_to_ASV_Relation_Tool.UpdateASV" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server" >
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
</asp:PlaceHolder>
<asp:Button runat="server" ID="asv_update" OnClick="asvUpdate_Click" Text="Update ASV" />
</asp:Content>
我希望能够从此页面后面的C#代码中编写文本(UpdateASV.aspx.cs)。每当我尝试:
Response.Write("some text");
它将代码放在content2占位符后面。我想要它在里面。是否有捷径可寻?
答案 0 :(得分:2)
Response.Write直接修改响应。您不希望在Web表单应用程序中执行此操作。您应该从代码隐藏修改Label,Literal或PlaceHolder控件的内容。
使用Label将文本放入页面
使用Literal将原始html放入页面
使用PlaceHolder动态地向页面添加新控件。
无论哪种方式,控件(Label,Literal或PlaceHolder)在页面上的位置决定了页面在输出的呈现位置。
答案 1 :(得分:0)
如果您决定坚持使用服务器端控件:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostback)
{
Literal myText = new Literal()
{
Text = "some text"
};
Content2.Controls.Add(myText);
}
}
否则,只需将代码放入内联
即可<%=Response.Write("some text") %>