c# asp.net响应.Write收缩文本框

本文关键字:文本 Write asp net 响应 | 更新日期: 2023-09-27 18:15:09

我有一个Web表单项目,我正在开发c# ASP。Net 4.5。我有一个调用响应的类。写入以显示用于用户输入验证目的的消息。回应的呼唤。Write是在类内部的方法中通过按下表单上的按钮来创建类的新实例(即类方法)。但是使用响应。Write会导致页面上的文本框大幅缩小。然后,当我按下另一个按钮时,文本框恢复正常。它只在我使用response。write时发生。任何帮助都会很感激。类方法中的代码调用:

   HttpContext.Current.Response.Write("File not found"); 

c# asp.net响应.Write收缩文本框

通过使用,您只是将文本转储到页面顶部,通常在<html>标记之外。这可能会对页面样式的其他部分产生连锁反应;当我吐出测试响应时,我也看到了同样的情况。

相反,在页面上放置一个标签控件并填充它。你可以把它放在你想要的地方,只需调用:

所以把这个:<asp:Label runat="Server" id="myLabel" />放在你想要消息出现的地方。

然后在代码中,这样写。它将用给定的文本填充标签。

myLabel.Text = "File not found";

Label控件将被渲染为<span></span> -所以样式化它是很好和容易的。

如果您喜欢使用<div>,那么使用Panel控件。

如果您不喜欢任何样式,可以选择Literal控件,它不呈现html元素。

当你使用HttpContext.Current.Response.Write的代码后面是直接发送到页面你的文本,在任何随机点的页面渲染。

可能在顶部,也可能在底部,如果你使用后面的代码调用它,在某些你无法控制的点上

改变你显示消息的方式,至少你可以使用一个文字控件来呈现你的输出并显示它

您可能希望使用控件来显示错误。例如:

在aspx/ascx
<asp:Label id="ErrorMessage" runat="server" />
后面的页/控件代码中的

//call TheClass
TheClass c = new TheClass();
string error = c.TheMethod();
if (!string.IsNullOrEmpty(error))
{
    ErrorMessage.Text = error;
}
成立这个

课程

public class TheClass
{
    public string TheMethod()
    {
        string result = "";
        ...
        //When file is not found
        result = "File not found";
        ...
        return result;
    }
}