Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp:dropdownlist不';t保存用户选择的值c#asp.net aspx_C#_Asp.net_Enums - Fatal编程技术网

asp:dropdownlist不';t保存用户选择的值c#asp.net aspx

asp:dropdownlist不';t保存用户选择的值c#asp.net aspx,c#,asp.net,enums,C#,Asp.net,Enums,我已经试了好几个小时了。我认为问题在于使用enum,但我的老板坚持我们使用它 webapp aspx代码: <label for="footerPlaceHolder_twoFactorAuthentication" class="sr-only"><asp:Localize runat="server" Text="<%$ Resources:UserMessages, TwoFactorSelect %>"></asp

我已经试了好几个小时了。我认为问题在于使用enum,但我的老板坚持我们使用它

webapp aspx代码:

                <label for="footerPlaceHolder_twoFactorAuthentication" class="sr-only"><asp:Localize runat="server" Text="<%$ Resources:UserMessages, TwoFactorSelect %>"></asp:Localize></label>
                <asp:DropDownList runat="server" ID="twoFactorAuthenticationDropDownList" CssClass="selectpicker">
                    <asp:ListItem Value="0" Text = "<%$ Resources:UserMessages, TwoFactorSelect %>"></asp:ListItem>
                    <asp:ListItem Value="3" Text = "<%$ Resources:UserMessages, TwoFactorRequire %>" ></asp:ListItem>
                    <asp:ListItem Value="2" Text = "<%$ Resources:UserMessages, TwoFactorRecommend %>" ></asp:ListItem>
                    <asp:ListItem Value="1" Text = "<%$ Resources:UserMessages, TwoFactorNotRequired %>" ></asp:ListItem>
                     </asp:DropDownList>
                <p><asp:RequiredFieldValidator runat="server" ControlToValidate="twoFactorAuthenticationDropDownList" CssClass="field-validation-error"  InitialValue="0" EnableClientScript="true" Display="Dynamic"></asp:RequiredFieldValidator></p>
webservice IOAuth2.cs代码:

public enum WebSite2FactorOptionEnum
{
    [EnumMember]
    NotSelected,
    [EnumMember]
    NotRequired,
    [EnumMember]
    Recommended,
    [EnumMember]
    Required
}

问题是下拉列表中的值是
int
s,但您将
SelectedValue
设置为string

尝试:


希望能有所帮助。

您将drodown的值和文本属性混为一谈。您的代码在这里:

twoFactorAuthenticationDropDownList.SelectedValue = data.TwoFactorOption.ToString();
正在尝试将所选值设置为类似“NotRequired”的值。这是行不通的,因为下拉列表的值是0、1、2等等

按照这些思路做一些事情会更好:

twoFactorAuthenticationDropDownList.SelectedValue = ((int)data.TwoFactorOption).ToString();
此外,还应明确定义枚举成员的数值,否则,如果更改枚举中项目的顺序,可能会导致意外后果

public enum WebSite2FactorOptionEnum
{
    [EnumMember]
    NotSelected = 0,
    [EnumMember]
    NotRequired = 1,
    [EnumMember]
    Recommended = 2,
    [EnumMember]
    Required = 3
}

最后,由于您使用的是EnumMember属性,因此我假设您正在序列化此枚举。依赖数据协定序列化枚举的整数值可能会产生意外的结果。

我看不到绑定,保存是指将用户的选择保存到数据库中,对吗?@Alexandre yes,Exactly可以显示从DDL获取用户选择值的代码吗?保存在哪里?你有一个包含表和列的数据库可以接受用户的选择吗?请记住,我是一个初学者,我遇到了一个错误:无法隐式地将“int”类型转换为“string”类型。你真是太棒了。很快,哈哈,StackOverflow中满是足智多谋的人@Alexandre我以为没人会回应因为我觉得我很直率
twoFactorAuthenticationDropDownList.SelectedValue = ((int)data.TwoFactorOption).ToString();
public enum WebSite2FactorOptionEnum
{
    [EnumMember]
    NotSelected = 0,
    [EnumMember]
    NotRequired = 1,
    [EnumMember]
    Recommended = 2,
    [EnumMember]
    Required = 3
}