[英]ASP.net c# basic question
願意承認我是一個完整的.NET新手,但是我在經典ASP方面擁有豐富的經驗,由於.net的整個結構完全不同,因此這變得非常棘手。
我知道我打算在后面使用代碼,但是現在我很高興將其嵌入頁面中,因為:
因此,請原諒我缺乏代碼,在此頁面上,我試圖獲取由查詢字符串“ mid”(菜單ID)返回的ID,然后為我們當前使用的菜單按鈕顯示不同的CSS類。 兩個菜單類navButton和navButtonO(在上方)。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="admin.aspx.cs" Inherits="AlphaPack._Default"
title="Administration"
%>
<script language="C#" runat="server" >
protected int menuID;
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;
}
}
</script>
<!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>
<div class="topMenu">
<div class="navButton<%if(menuID == 0){ response.write("O") }%>">
<a href="admin.aspx" class="navLink">Admin Home</a>
</div>
<div class="navButton<%if(menuID == 1){ response.write("O") }%>">
<a href="users.aspx" class="navLink">User Manager</a>
</div>
<div class="navButton<%if(menuID == 2){ response.write("O") }%>">
<a href="products.aspx" class="navLink">Products</a>
</div>
</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
</body>
</html>
感謝您的幫助,不要再費力。
您確實應該將代碼放在頁面后面的代碼中,即使很簡單,也無法將其保留在標記頁面中。 其次,您仍在考慮經典的ASP,並使用Response.Write。 幾乎沒有理由使用Response.Write,如果您在標記頁面中使用它,那么您幾乎總是在做錯事情。 將div轉換為Panel控件,將其呈現為div。 然后,使用簡單的switch語句在頁面后面的代碼中設置CssClass屬性。 您正在使用int.Parse
,只有在保證可以從解析文本中獲得int的情況下才應使用此方法。 如果不解析,將引發異常,請改用int.TryParse。
將midID
提升為類變量。
protected int menuID;
protected void Page_Load(object sender, EventArgs e)
{
menuID = 0;
// Check the user is allowed here
if (!Roles.IsUserInRole("Admin"))
{
Response.Redirect("../default.aspx");
}
// Get the menu ID
menuID = int.Parse(Page.Request.QueryString["mid"]);
}
int menuId = 0;
應該:
public int MenuId{get;set;}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.