清除动态绑定枚举的方式选择下拉列表?

时间:2017-03-03 15:23:18

标签: c# asp.net-mvc-5 asp.net-core asp.net-core-mvc

我们有下拉列表,其中的选项可能因使用该应用程序的人而异。我们的想法是为下拉选项创建枚举,并通过执行以下操作将其附加到<select>标记:

public ListOfEnums? PropertyValue { get; set; }

public enum ListOfEnums
{
    OptionA,
    OptionB
}

public enum ListOfEnumsAlternate
{
    OptionY,
    OptionZ
}

<select asp-for="PropertyValue" asp-items="Html.GetEnumSelectList<ListOfEnums>()"></select>

如果下拉选项是静态的,则此方法很有用。但是,在我们的应用程序中,选项可以根据前一个字段的回答方式或基于其他属性值进行更改。因此,我们可能需要在某些情况下显示ListOfEnumsAlternate

有没有一种干净的方法来实现这一点,仍然使用枚举或不同的选项(客户端与jQuery?)更好?

1 个答案:

答案 0 :(得分:0)

由于页面是由服务器生成的,因此在没有客户端代码的情况下执行此操作的唯一方法是在填充上一个字段后调用服务器。这是一种沉重的行为,在你的情况下似乎并不需要。

处理此问题的最佳方法是在您的网页中设置两个下拉列表(一个包含ListOfEnums,另一个包含ListOfEnumsAlternate)。

然后,当前一个字段填满时,您只使用javascript代码显示其中一个。