1

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

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

3 回答 3

0

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

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

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

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

myLabel.Text = "File not found";

Label控件将呈现为<span></span>- 所以它的样式很好而且很容易。

如果您喜欢使用 a<div>然后使用Panel控件。

如果您对任何样式都不在意,请选择Literal不呈现 html 元素的控件。

于 2013-05-24T20:12:51.537 回答
0

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

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

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

于 2013-05-24T20:14:01.947 回答
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;
    }
}
于 2013-05-24T20:16:25.533 回答