簡體   English   中英

ASP.net C#基本問題

[英]ASP.net c# basic question

願意承認我是一個完整的.NET新手,但是我在經典ASP方面擁有豐富的經驗,由於.net的整個結構完全不同,因此這變得非常棘手。

我知道我打算在后面使用代碼,但是現在我很高興將其嵌入頁面中,因為:

  1. 每個頁面都會很簡單,所以不會有太多混淆
  2. 以“正確”的方式完成所有工作可能需要太多步驟,隨着我逐漸掌握.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM