在我的.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)
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.