c#asp.net response.write收缩文本框

时间:2013-05-24 20:02:14

标签: c# asp.net

我有一个Web表单项目我正在开发C#ASP.Net 4.5。我有一个类调用response.write来显示用于用户输入验证的消息。对response.write的调用是在一个方法中的类内部创建一个新的类实例,因此通过按下表单上的按钮来创建类方法。但是使用response.write会导致页面上的文本框大大缩小。然后,当我按下另一个按钮时,文本框将恢复正常。它只发生在我使用response.write时。任何帮助,将不胜感激。类方法中的代码调用:

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

3 个答案:

答案 0 :(得分:0)

通过使用它,您只需将文本转储到页面顶部,通常在<html>标记之外。这可以对其余的页面样式产生连锁效应;当我吐出测试答案时,我也看到了同样的情况。

相反,在页面上放置一个标签控件并填充它。你可以把它准确地放在你想要的地方,然后直接打电话:

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

然后在你的代码隐藏中,写下这个。它将使用给定的文本填充标签。

myLabel.Text = "File not found";

Label控件将呈现为<span></span> - 因此造型非常简单。

如果您想使用<div>,请使用Panel控件。

如果您不喜欢任何类型的风格,请选择Literal控件,该控件不会呈现任何HTML元素。

答案 1 :(得分:0)

当您使用HttpContext.Current.Response.Write后面的代码时,直接发送到您的文本页面,在页面的任意随机点呈现。

也许在最重要的位置,也许在最底层,在某些方面,如果您使用后面的代码来调用它,则无法控制。

更改显示消息的方式,至少可以使用文字控件在那里呈现输出并显示它。

答案 2 :(得分:0)

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

在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;
    }
}