ASP.net c#基本问题

ASP.net c#基本问题,c#,asp.net,C#,Asp.net,我愿意承认我是一个完全的.NET新手,但我在经典ASP方面有着丰富的经验,这使得这一点非常棘手,因为.NET的整个结构完全不同 我知道我打算使用代码隐藏,但现在我很高兴将其嵌入到页面中,因为: 每一页都很简单,所以 不会有太多的混淆 这可能是一个太多的步骤 我会用“正确”的方式做每件事 我宁愿慢慢地走到那一步 熟悉.net 因此,请原谅我缺少代码,在这个页面上,我试图获取查询字符串“mid”(菜单ID)返回的ID,然后为我们当前使用的菜单按钮显示一个不同的CSS类。两个菜单类,navButton

我愿意承认我是一个完全的.NET新手,但我在经典ASP方面有着丰富的经验,这使得这一点非常棘手,因为.NET的整个结构完全不同

我知道我打算使用代码隐藏,但现在我很高兴将其嵌入到页面中,因为:

  • 每一页都很简单,所以 不会有太多的混淆
  • 这可能是一个太多的步骤 我会用“正确”的方式做每件事 我宁愿慢慢地走到那一步 熟悉.net
  • 因此,请原谅我缺少代码,在这个页面上,我试图获取查询字符串“mid”(菜单ID)返回的ID,然后为我们当前使用的菜单按钮显示一个不同的CSS类。两个菜单类,navButton和navButtonO(结束)

    
    受保护的int-menuID;
    受保护的无效页面加载(对象发送方、事件参数e)
    {
    字符串menuIDdata=Page.Request.QueryString[“mid”];
    menuID=0;
    //检查此处是否允许用户
    如果(!Roles.IsUserInRole(“Admin”))
    {
    Response.Redirect(“../default.aspx”);
    }
    //获取菜单ID
    if(int.TryParse(menuIDdata,out menuID))
    {
    menuID=int.Parse(menuIDdata);
    }否则{
    menuID=0;
    }
    }     
    管理
    



    欢迎来到管理员

    感谢您提供的帮助,请不要多此一举。

    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"]);
    }     
    

    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"]);
    }     
    
    应该是:

    public int MenuId{get;set;}
    
    应该是:

    public int MenuId{get;set;}
    


    您真的应该将代码放在代码隐藏页面中,即使代码很简单,将其保留在标记页面中也没有任何价值。其次,您仍然在考虑使用经典asp和Response.Write。几乎没有理由使用Response。写下,如果您在标记页面中使用它,那么您几乎总是做错事。将div转换为面板控件,该控件将作为div渲染。然后使用一个简单的switch语句在代码隐藏页中设置CssClass属性。您正在使用
    int.Parse
    只有在保证从解析文本中获得int值时,才应使用此选项。如果不进行解析,则会引发异常,请改用int.TryParse。

    您应该将代码放在代码隐藏页中,即使代码很简单,也没有价值将其保留在标记页中。其次,您仍然在考虑使用经典asp和Response.Write。几乎没有理由使用Response。写下,如果您在标记页面中使用它,那么您几乎总是做错事。将div转换为面板控件,该控件将作为div渲染。然后使用一个简单的switch语句在代码隐藏页中设置CssClass属性。您正在使用
    int.Parse
    只有在保证从解析文本中获得int值时,才应使用此选项。如果不解析,将抛出异常,请改用int.TryParse。

    问题是什么?有些事情不管用吗?顺便说一句,正确的“半途而废”只会让你的生活从长远来看更加艰难。。。我想最好是跳进去。我有3个错误:;应为无效的表达式项“}”),应为line@Paddy,我知道你可能是对的,但我想我会没事的:)我一弄清楚所有的语法和结构,然后我就直接进去,这对我的花生脑来说是太多的变化了,一下子就明白了:(顺便说一句,如果你把
    改成
    ,阅读起来会更容易。问题是什么?有些东西不起作用吗?顺便说一句,正确的“中途”做事情只会让你的生活从长远来看更艰难……我想最好是跳进去。我有3个错误:;预期无效的表达式术语“}”)期待所有的一切line@Paddy,我知道你可能是对的,但我想我会没事的:)我一弄清楚所有的语法和结构,然后我就直接进去,这对我的花生脑来说是太多的变化了,一下子就明白了:(顺便说一句,如果您将
    更改为
    ,阅读起来会更容易。谢谢,我在有标记的行上收到了一个)预期错误!谢谢,我在有标记的行上收到了一个)预期错误+1.使用代码隐藏文件,事情会变得更简单。页面很难不从视觉分割中获益。谢谢,现在使用pannel控件,一切似乎都很好:)int.TryParse不需要If-Else,如果成功,menuID将设置为解析值,如果失败,它将设置为0.+1。使用代码隐藏文件,事情会变得更简单。页面很难不从视觉分割中获益。谢谢,现在使用pannel控件,一切似乎都很好:)int.TryParse不需要If-Else,如果成功,menuID将设置为解析值,如果失败,它会将其设置为0。名称“MENUD”在当前上下文中不存在这就是我与.net斗争的原因,我发布了一些问题,但似乎没有任何东西对我起作用:-(名称“MENUD”在当前上下文中不存在这就是我与.net斗争的原因,我发布了一些问题,但似乎没有任何东西对我起作用:-(