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