aspx页面中的C#脚本输出

时间:2011-12-29 20:56:44

标签: c# asp.net html visual-studio-2010

我的asp.net代码中嵌入的C#脚本的输出存在问题。单击Web表单的提交按钮后生成输出。此Web表单位于页面顶部。当单击提交时,输出当前被放置在Web表单上方,而Web表单又在其下方推送Web表单。我希望相反的事情发生。我希望它输出到我的网络表单下方。我从脚本生成输出的方式如下:

Response.Write("<p>");
foreach(obj in arr){
    Response.Write(obj);
}
Response.Write("</p>");

如果重要,我用runat =“server”初始化脚本。当用户在Web表单附近选择“提交”时,将调用该脚本。提前致谢。我一直试图将这个东西格式化很长一段时间。

2 个答案:

答案 0 :(得分:5)

最好将“文字”对象放在页面上的某个位置,准确地显示您想要显示结果的位置,然后,不要使用response.write吐出HTML,而是将所需的文本分配给代码隐藏中的文字。

像这样:

<html>

<p>
  <asp:Literal ID="ltlTest" runat="server"></asp:Literal>
</p>

</html>

然后在你的代码中:

ltlTest.Text = "the string you want to show...";

您可以在字符串赋值中包含html标记,但通常我不会这样做。

答案 1 :(得分:1)

你有一些选择。

  1. 您可以将arr设为公共媒体资源,然后直接在页面标记中使用<% foreach (var obj in arr) Response.Write(obj); %>

  2. 您可以输入<asp:Literal runat="server" ID="Literal1">控件,然后在代码中设置Literal1.Text = ...。这实现了相同,但使用ViewState(因此值会在回发上保留)。

  3. 如果您希望在<span />代码中呈现结果,则可以使用<asp:Label />控件。这通常是向用户显示消息的最佳选择。