ASP.net c#page#加载两次?
在网页上:ASP.net c#page#加载两次?,c#,asp.net,C#,Asp.net,在网页上: protected void Page_Load(object sender, EventArgs e) { string menuIDdata = Page.Request.QueryString["mid"]; menuID = 0; // Check the user is allowed here if (!Roles.IsUserInRole("Admin")) { Response.Redirect("../def
protected void Page_Load(object sender, EventArgs e)
{
string menuIDdata = Page.Request.QueryString["mid"];
menuID = 0;
// Check the user is allowed here
if (!Roles.IsUserInRole("Admin"))
{
Response.Redirect("../default.aspx");
}
// Get the menu ID
if (int.TryParse(menuIDdata, out menuID))
{
menuID = int.Parse(menuIDdata);
}
else
{
menuID = 0;
}
debugLabel.Text = "WORKING";
var selectedMenu = this.Page.FindControl("mnu" + menuID) as Panel;
selectedMenu.CssClass = "navButtonO";
}
管理
欢迎来到管理员
调试标签拒绝更改它的值,我希望它以文本的形式显示“正在工作”,我做错了什么
更新:
在尝试构建时,我遇到3个错误:
错误1类型“******.\u Default”已使用相同的参数类型\Default.aspx.cs 12 24定义了名为“Page\u Load”的成员
x3但在不同的页面上编辑:
好的,给你。您有一个Default.aspx页面,管理员页面很可能是从该页面复制的
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="admin.aspx.cs" Inherits="*******._Default" title="Administration" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="mainHead" runat="server" >
<title>Administration</title>
<link rel="Stylesheet" href="../style/admin.css" />
</head>
<body>
<form id="mainForm" runat="server">
<div class="topMenu">
<asp:Panel id="mnu0" runat="server" class="navButton">
<a href="admin.aspx" class="navLink">Admin Home</a>
</asp:Panel>
<asp:Panel id="mnu1" runat="server" class="navButton">
<a href="admin.aspx" class="navLink">User Manager</a>
</asp:Panel>
<asp:Panel id="mnu2" runat="server" class="navButton">
<a href="admin.aspx" class="navLink">Products</a>
</asp:Panel>
</div>
<br /><br />
<div class="subMenu">
<a href="products.aspx" class="subLink">Products</a> <a href="productCats.aspx" class="subLink">Categories</a>
</div>
<br /><br />
Welcome to the Admin
<br /><br />
<asp:label id="debugLabel" runat="server" />
</form>
</body>
</html>
因此,如果您需要从这个默认页面继承一些基本函数,那么您需要从这个页面继承。然后像这样改变它:
public partial class _Default : System.Web.UI.Page
因为TryParse
正在返回带有输出参数的解析整数。编辑:
好的,给你。您有一个Default.aspx页面,管理员页面很可能是从该页面复制的
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="admin.aspx.cs" Inherits="*******._Default" title="Administration" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="mainHead" runat="server" >
<title>Administration</title>
<link rel="Stylesheet" href="../style/admin.css" />
</head>
<body>
<form id="mainForm" runat="server">
<div class="topMenu">
<asp:Panel id="mnu0" runat="server" class="navButton">
<a href="admin.aspx" class="navLink">Admin Home</a>
</asp:Panel>
<asp:Panel id="mnu1" runat="server" class="navButton">
<a href="admin.aspx" class="navLink">User Manager</a>
</asp:Panel>
<asp:Panel id="mnu2" runat="server" class="navButton">
<a href="admin.aspx" class="navLink">Products</a>
</asp:Panel>
</div>
<br /><br />
<div class="subMenu">
<a href="products.aspx" class="subLink">Products</a> <a href="productCats.aspx" class="subLink">Categories</a>
</div>
<br /><br />
Welcome to the Admin
<br /><br />
<asp:label id="debugLabel" runat="server" />
</form>
</body>
</html>
因此,如果您需要从这个默认页面继承一些基本函数,那么您需要从这个页面继承。然后像这样改变它:
public partial class _Default : System.Web.UI.Page
因为
TryParse
正在返回带有输出参数的解析整数。在代码上放置调试器,您将看到代码从未到达“debugLabel.Text=”WORKING;
“代码行,因为在此之前发生了一些异常。将文本分配给标签的方式绝对没有问题。在代码上放置一个调试器,您将看到代码永远不会到达“debugLabel.text=”WORKING;
// Get the menu ID
if (!int.TryParse(menuIDdata, out menuID))
{
menuID = 0;
}
“代码行,因为在此之前发生了一些异常。将文本指定给标签的方式绝对没有问题此行:
// Get the menu ID
if (!int.TryParse(menuIDdata, out menuID))
{
menuID = 0;
}
try
{
string menuIDdata = Page.Request.QueryString["mid"];
menuID = 0;
// Check the user is allowed here
if (!Roles.IsUserInRole("Admin")) Then
{
Response.Redirect("../default.aspx");
}
// Get the menu ID
if (int.TryParse(menuIDdata, out menuID))
{
menuID = int.Parse(menuIDdata);
}
else
{
menuID = 0;
}
}
catch { }
debugLabel.Text = "WORKING";
var selectedMenu = this.Page.FindControl("mnu" + menuID) as Panel;
selectedMenu.CssClass = "navButtonO";
我很困惑。您是否有一个名为admin.aspx.cs的文件,其中有一个名为******.\u Default的公共类?这是一个非常不寻常的惯例。可能此页继承的代码隐藏引用或类名不正确。此行:
try
{
string menuIDdata = Page.Request.QueryString["mid"];
menuID = 0;
// Check the user is allowed here
if (!Roles.IsUserInRole("Admin")) Then
{
Response.Redirect("../default.aspx");
}
// Get the menu ID
if (int.TryParse(menuIDdata, out menuID))
{
menuID = int.Parse(menuIDdata);
}
else
{
menuID = 0;
}
}
catch { }
debugLabel.Text = "WORKING";
var selectedMenu = this.Page.FindControl("mnu" + menuID) as Panel;
selectedMenu.CssClass = "navButtonO";
我很困惑。您是否有一个名为admin.aspx.cs的文件,其中有一个名为******.\u Default的公共类?这是一个非常不寻常的惯例。可能此页继承的代码隐藏引用或类名不正确。可能在调试时,您会看到标签文本分配行被命中?我想说,debugLabel.text=“WORKING”行从未被命中。呸,我正在从远程服务器打开visual studio中的文件,debug不允许我拥有权限或其他东西检查浏览器上的html源代码。标签呈现为span标记。menuID是否在页面类级别声明?如果您不是管理员用户,它会重定向吗?可能在调试时,您会看到标签文本分配行被点击?我会说,debugLabel.text=“WORKING”行从未被点击。呸,我正在从远程服务器打开visual studio中的文件,debug不允许我拥有权限或其他什么检查浏览器上的html源代码。标签呈现为span标记。menuID是否在页面类级别声明?如果您不是管理员用户,它会重定向吗?谢谢您的回答,但是标签仍然没有显示任何内容,即使失败
menuID
也将为0。因此,如果OP在这种情况下不执行任何附加操作,则根本不需要if
。删除角色行没有任何作用,它仍然不会显示标签。标签呈现为空,但我确实有3个错误(请参见“编辑到”问题),这可能会停止它的运行吗?感谢您的回答,但标签仍然显示为空,即使在失败的情况下menuID
也将为0。因此,如果OP在这种情况下不执行任何附加操作,则根本不需要if
。删除角色行没有任何作用,它仍然不会显示标签。标签呈现为空,但我确实有3个错误(请参见“编辑到”问题),这可能会停止它的运行吗?我想这是在创建页面时自动生成的,但我可能复制并粘贴了另一个页面,以便将admin.aspx.cs文件中的公共分部类重命名为唯一的名称。然后将Inherits-“”参数更新为新的类名。我打赌至少这个页面会从编译错误列表中消失。它可能会也可能不会解决您的双重回发问题。在代码隐藏中:public partial class Admin_Default_UNIQUE:System.Web.UI.Page{感谢您的帮助,我收到错误:解析器错误消息:无法加载类型“Admin_Default_UNIQUE”。您是否也重命名了Admin.aspx.cs文件中的类名?public partial class Admin_Default_UNIQUE:System.Web.UI.Page{我想这是在创建页面时自动生成的,但我可能复制并粘贴了另一个页面,以便将admin.aspx.cs文件中的公共分部类重命名为唯一类。然后更新继承-“”参数设置为新的类名。我打赌至少这个页面会从编译错误列表中消失。它可能会也可能不会修复您的双重回发问题。在代码隐藏中:public partial class Admin\u Default\u UNIQUE:System.Web.UI.page{感谢您的帮助,我收到错误:解析器错误消息:无法加载类型“Admin\u Default\u UNIQUE”。您是否也在Admin.aspx.cs文件中重命名了类名?公共部分类Admin\u Default\u UNIQUE:System.Web.UI.Page{