枚举字符串C#和JavaScript

Pos*_*Guy 0 javascript c#

在我的.aspx中我定义了以下javascript变量:

var action = <%=ProdView %>
Run Code Online (Sandbox Code Playgroud)

在代码隐藏中,它返回一个自定义枚举值:

protected ProductView ProdView { get; private set; }
Run Code Online (Sandbox Code Playgroud)

我想这会自动转换为javascript中的字符串?看起来没有,因为我得到运行时错误"Item is not defined",其中Item是值ProdView.Item.最终我希望动作的值为"Item"作为值.

这是Enum:

  public enum ProductView
  {
   Product,
   Item
  }
Run Code Online (Sandbox Code Playgroud)

jga*_*fin 5

var action = '<%=ProdView.ToString() %>'
Run Code Online (Sandbox Code Playgroud)

不要忘记引号.

编辑以回应咖啡上瘾者评论

您必须记住代码执行两次,首先在服务器端生成文本字符串:

var action = '<%=ProdView.ToString() %>'
Run Code Online (Sandbox Code Playgroud)

由ASP.net执行并在将其返回到Web浏览器之前变为完整的字符串

var action = 'lalalalala'
Run Code Online (Sandbox Code Playgroud)

实际的java脚本在Web浏览器中执行.

所以ASP.net与实际的javascript执行无关.它的工作只是生成将被发送回webbrowser的HTML/javascript/css.