.net 通过下拉列表选择(ddl)设置枚举值

.net 通过下拉列表选择(ddl)设置枚举值,.net,vb.net,enums,.net,Vb.net,Enums,有三个文件: index.aspx serverInfo.cs setup.aspx.vb Dim enumValue as Nullable(Of Integer) enumValue = conToExchange.GetEnumValue(ddlExVersion.SelectedValue) 我的枚举位于: --------------- //Class:serverInfo.cs --------------- public enum ServerVersion {

有三个文件: index.aspx

serverInfo.cs

setup.aspx.vb

Dim enumValue as Nullable(Of Integer)
enumValue = conToExchange.GetEnumValue(ddlExVersion.SelectedValue)
我的枚举位于:

---------------
//Class:serverInfo.cs
---------------
public enum ServerVersion
    {
        Exchange2007SP1 = 0,
        Exchange2011 = 1,
    } 

 // <summary>
    /// Creates a new Service Provider for a specific Server version
    /// </summary>
    /// <param name="serverVersion">Version of the Exchange Server</param>
    public ExchangeServiceProvider(ExchangeServerVersion serverVersion)
    {
        this._service = new ExchangeService((ExchangeVersion)serverVersion);
    }

---------------
//Class:setup.aspx.vb
---------------
Private Sub manualConnect()
    Dim accNameM As String = txtAccName2.Text
    Dim passM As String = txtPass2.Text
    Dim exVer As String = ddlExVersion.SelectedValue
    Dim servURL As String = txtURL.Text
    '----------------------------------'

    conToExchange = New ymp.Utility.Services.Exchange.ExchangeServiceProvider()
    conToExchange.Credentials = New System.Net.NetworkCredential(accNameM, passM)
    '----------------------------------'

    'FOR MANUAL CONNECTION
    conToExchange.Connect(servURL)
    conToExchange.Connect = [Enum].Parse(exVer)
    '---------------------
    Dim connected As Integer = conToExchange.Connect(servURL)
    '--------------------------------------------------

   'CHECK CONNECTION
    conToExchange.Connect(exVer)


    'TRY TO CONNECT TO EXCHANGE USING AUTODISCOVER,ELSE COULD NOT CONNECT
    If connected Then
        'GO TO SUCCESS PAGE
        phManualSetup.Visible = False
        phSuccess.Visible = True
    Else
        phError.Visible = True
    End If
End Sub


-------------
//Markup:index.aspx
<asp:DropDownList ID="ddlExVersion" runat="server">

<asp:ListItem Selected="True" Value="Ex2010SP1">Exchange 2010 SP1</asp:ListItem>

    <asp:ListItem Value="Ex2011">Exchange 2011</asp:ListItem>



</asp:DropDownList><span></span>
我想做的是:

查看通过下拉列表选择的版本,将其与var中枚举存储中的值进行比较,并添加到我的连接检查中

有什么帮助或建议吗

先谢谢你


谢谢

如果我正确理解了问题,您需要查看所选值是否为有效/定义的枚举值,您可以执行类似操作。将此方法放在serverInfo.cs中

/// <summary>
/// Returns the Enum Value based on String provided
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public int? GetEnumValue(string value)
{
   ServerVersion newEnumVar;
   bool parsed = Enum.TryParse<ServerVersion>(value, out newEnumVar);

   if (parsed)
   {
       return Convert.ToInt32(newEnumVar);
   }

   return null;
 }

是否要将0或1路径设置为conToExchange.Connect方法?参数类型是字符串/整数?是,我想要0或1。.Connect的参数类型为.NET microsoft object类型。在这种情况下,您可以使用Int32.TryParse方法将ddlExVersion.SelectedValue强制转换为整数。我相信ddlExVersion.SelectedValue包含数值。我认为您不理解我的问题。我需要通过下拉列表查看选择的版本,将其与新变量中枚举存储中的值进行比较,并添加到我的连接检查中。下拉列表包含字符串值。希望有帮助!谢谢,谢谢。是的,它是非服务器版本枚举类型,但正如您所看到的,它们在不同的文件中定义。所以请改变你的答案来适应这个。同样是的,我需要一个枚举整数,它与客户端选择的匹配。这更清楚吗?谢谢,这是行不通的。我不需要客户端的代码,这是asp。另外这段代码不是VB.NET。另外,我无法将代码放在定义枚举的位置,我需要调用文件setup.aspx.vb中的枚举函数serverInfo.cs。感谢您提供的仅将所选内容与枚举中的内容进行比较。那很好。但我需要它来比较所选值和枚举中的值,然后如果所选值与枚举中可用的值匹配,则将其存储在新变量中。希望这有助于buddyPlus在尝试将所选内容与枚举中的值进行比较时,无需存储枚举中所选内容。