如何从默认的ASP.NET网站主文件有条件地抑制asp:MenuItem?

时间:2012-03-16 20:29:15

标签: c# asp.net web

我需要让一个不专业的人能够自己安装ASP.NET应用程序。

安装程序(一个人)会将应用程序文件复制到虚拟目录中。

安装程序将获得适合从sysadmin创建数据库的SQL Server名称用户名和密码。

该应用程序有一个网页,它自动在指定的SQL服务器上创建一个空数据库,其名称由使用特定Web表单设置服务器名称的安装程序提供。

我希望安装页面只出现在主菜单上一次。

安装页面在master中有一个链接作为asp:MenuItem。

在数据库安装后,哪种方法可以抑制此菜单项?

我想到了Web.config中的一个特定变量,如果数据库已经安装并准备好使用,它将保留值,但有些人不喜欢这个解决方案。

1 个答案:

答案 0 :(得分:2)

这为您提供了一系列选项:

Nine Options for Managing Persistent User State in Your ASP.NET Application

您可以使用Web.Config文件中的appSettings部分在项目或文件夹级别生成变量,并在会话期间缓存变量:

<appSettings>
    <add key="customsetting1" value="Some text here"/>
</appSettings>

System.Configuration.Configuration rootWebConfig1 =                  
    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null);

if (rootWebConfig1.AppSettings.Settings.Count > 0)
{
    System.Configuration.KeyValueConfigurationElement customSetting = 
        rootWebConfig1.AppSettings.Settings["customsetting1"];
    if (customSetting != null)
        Console.WriteLine("customsetting1 application string = \"{0}\"",   
            customSetting.Value);
    else
        Console.WriteLine("No customsetting1 application string");
}

更多信息:http://msdn.microsoft.com/en-us/library/ms228154.aspx