如何在.aspx Webform中获取将枚举值强制转换为int(或识别字符串值)

时间:2019-06-18 06:17:15

标签: c# jquery asp.net webforms

我有一些jquery代码来隐藏/显示一些东西,具体取决于枚举值构成的下拉值。

这是下拉列表的填充方式:

public IList<SelectListItem> DataTypes => new List<SelectListItem>(
     Enum.GetValues(typeof(DataType))
     .Cast<DataType>()
     .Select(v => new SelectListItem
         {
             Text = v.ToString(),
             Value = ((int)v).ToString()
         }).ToList());

我无法完成这项工作。我尝试过:

if ($('#Data_Type').val() === <%:((int)DataType.SomeType).ToString()%>)

只是默默地失败

而以下的不同变体

if ($('#Data_Type: selected').text() === <%:DataType.SomeType.ToString()%>)

导致js错误

  

未定义某些类型

使用魔术弦("0""SomeType")有效。

有办法吗?

1 个答案:

答案 0 :(得分:0)

我认为这不可能。我最终将字符串值添加到模型中的数组并将其解析为JavaScript数组。

JSON.parse('@Html.Raw(Model.DataTypes)');

然后检查数组是否包含文本。