c# - 如何在 JavaScript 中使用 C# 枚举值

标签 c# javascript asp.net enums

我在 C# 中有一个枚举,例如 Category.cs。
在下拉列表中,我们绑定(bind)值。
因此,如果用户在下拉列表中选择某个特定值,它将隐藏一个 div。
所以我想在 javascript 中获取枚举值,即想将枚举值与 javascript 中的一个选定值进行比较。

马赫什

最佳答案

假设您有这样的带有数值的enum:

public enum Colors
{
   Yellow = 1,
   Red,
   Blue,
   Green,
   Purple
}

首先,在后面的代码(Page_Load 事件)中注册将构建包含相同数据的客户端结构的 JavaScript 代码:

string strJS = string.Format("var arrColors = {{{0}}}; ",
    string.Join(", ", Enum.GetNames(typeof(Colors)).ToList().ConvertAll(key =>
{
    return string.Format("{0}: {1}", key, (int)((Colors)Enum.Parse(typeof(Colors), key)));
}).ToArray()));
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "enum", strJS, true);

现在 arrColors 是 JS 变量,同时包含 enum 的键和值。

要使用它,例如有这样的代码:

<script type="text/javascript">
   function SelectionChanged(oDDL) {
      var selectedValue = oDDL.value;
      var enumValue = arrColors[selectedValue] || "N/A";
      alert("enum value for '" + selectedValue + "' is: " + enumValue);
   }
</script>

下拉菜单应该是这样的:

<select onchange="SelectionChanged(this);">
    <option>Select..</option>
    <option value="Yellow">Yellow</option>
    <option value="Green">Green</option>
</select>

关于c# - 如何在 JavaScript 中使用 C# 枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5537271/

相关文章:

c# - 双数组到对象数组?

javascript - 如何在变量中获取 ClientID

c# - GridView 行中的动态复选框在 ASP.NET 中未正确显示

javascript - 创建回调函数的最佳方式

javascript - 如何迭代 XMLHttpRequest?

javascript - 如何在使用 slimerjs 在 casperjs 中运行测试脚本时最大化浏览器窗口

asp.net - 动态事件处理程序未触发

c# - 如何在控件中使用 PreLoad 事件?

c# - 如果文本框为空,则禁用按钮

c# - 不完整的视频流式传输到移动浏览器 - HTTP header