我正在处理这个C#页面,但我不知道如何正确格式化它。
1 /我想在查询字符串的结果之前和之后添加标题徽标和页脚文本。我不知道怎么做。任何帮助表示赞赏。
当我执行代码时,查询字符串结果出现在徽标和页脚之前。
2 /我的第二个问题是如何将Response.Write的值存储在变量中并将其显示在.aspx页面上?我想格式化结果,把它们放在漂亮的表格布局等等。
非常感谢你的帮助。
Error.aspx.cs
using System;
using System.Web.UI;
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
string ErrorCode = Request.QueryString["ErrorCode"];
if (ErrorCode != null)
{
Response.Write("ErrorCode: " + ErrorCode + "</br>");
}
string ErrorName = Request.QueryString["ErrorName"];
if (ErrorName != null)
{
Response.Write("ErrorName: " + ErrorName + "</br>");
}
string ErrorMessage = Request.QueryString["ErrorMessage"];
if (ErrorMessage != null)
{
Response.Write("ErrorMessage: " + ErrorMessage);
}
}
}
Error.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link rel="stylesheet" type="text/css" href="StyleSheet.css">
</head>
<body>
<div class="main-logo">
<img alt="Logo" src="images/main-logo.jpg" />
</div>
<form id="form1" runat="server">
</form>
<div class="footer">
<img alt="Footer" src="images/footer.jpg" />
</div>
</body>
</html>
这是我的新代码,经过大家的帮助后修复:
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
string ErrorCode = Request.QueryString["ErrorCode"];
if (ErrorCode != null)
{
lbErrorCode.Text = "ErrorCode: " + ErrorCode ;
}
string ErrorName = Request.QueryString["ErrorName"];
if (ErrorName != null)
{
lbErrorName.Text = "ErrorName: " + ErrorName;
}
string ErrorMessage = Request.QueryString["ErrorMessage"];
if (ErrorMessage != null)
{
lbErrorMessage.Text = "ErrorMessage: " + ErrorMessage;
}
}
}
Error.aspx
<form id="form1" runat="server">
<div class="main-logo">
<img alt="Logo" src="images/logo.jpg" />
</div>
<div><asp:Label ID="lbErrorCode" runat="server" /> </div>
<div><asp:Label ID="lbErrorName" runat="server" /></div>
<div><asp:Label ID="lbErrorMessage" runat="server" /></div>
</form>
当我执行没有任何值的页面时,徽标加载得很好,但是当我传递一些示例数据时:/?ErrorMessage = HelloWorld&amp; ErrorCode = 500&amp; ErrorName = InvalidInput,那么徽标不会加载。
请问好吗?
提前致谢。
答案 0 :(得分:1)
我的ASP.NET WebForms有点生疏,所以希望这会让你开始。
首先,您需要使用ASP.NET Label控件来表示您的文本,而不是使用Response.Write
(它只会将文本转发到响应缓冲区,无论它恰好位于时间)。尝试将Label控件添加到您的页面:
<div class="main-logo">
<img alt="Logo" src="images/main-logo.jpg" />
<asp:Label ID="Label1" runat="server" />
</div>
然后,您可以在代码中设置Text
属性:
if (ErrorCode != null)
{
Label1.Text = "ErrorCode: " + ErrorCode;
}
答案 1 :(得分:0)
是否需要使用Response.Write
?如果没有,您可以在form1中放置一个标签,并将错误消息传递给标签的Text属性。
<form id="form1" runat="server">
<asp:Label id="lblError" runat="server"></asp:Label>
</form>
和Page_Load
...
string ErrorCode = Request.QueryString["ErrorCode"];
if (ErrorCode != null)
{
lblError.Text=Label1.Text+"ErrorCode: " + ErrorCode;
}
...
答案 2 :(得分:0)
不要使用Response.Write来做这种事情。而是在要实现文本的页面上的任何位置放置ASP:Literal控件。然后将Literal的Text属性设置为您要显示的字符串。
也是 - 不要直接在QUERYSTRING中写入文字
请确保先通过Server.HtmlEncode运行它们,否则您的页面会对各种XSS漏洞开放。
您的页面看起来应该是这样的......
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link rel="stylesheet" type="text/css" href="StyleSheet.css">
</head>
<body>
<div class="main-logo">
<img alt="Logo" src="images/main-logo.jpg" />
</div>
<form id="form1" runat="server">
**<ASP:Literal runat="server" id="ltlErrorMessage" />**
</form>
<div class="footer">
<img alt="Footer" src="images/footer.jpg" />
</div>
</body>
</html>
代码应该是这样的:
string ErrorCode = Request.QueryString["ErrorCode"];
if (ErrorCode != null)
{
ltlErrorMessage.Text = Server.HtmlEncode(ErrorCode);
}