【发布时间】:2021-02-08 14:22:04
【问题描述】:
在我的 ASP.NET MVC 应用程序的 ..\Views\Shared_Layout.cshtml 中,我有以下代码行:
> <script type="text/javascript" src="http://mycontrols.com/Scripts/MyConstants.js"></script>
文件 MyConstants.js 包含以下内容:
var MyConstants = function() {
return {
DataObject1: {
MyEnum1: {
Item0: 0,
Item1: 1,
Item3: 2
}
},
DataObject2: {
MyEnum2: {
Item0: 0,
Item1: 1,
Item3: 2
}
}
};
};
现在,从我的角度来看 (Index.cshtml),我正在尝试用 javascript 访问 MyEnum1 中的项目:
var myEnum = MyConstants.DataObject1.MyEnum1.Item1;
但它不起作用,在 chrome 中的错误 en devtools 下方:
jQuery.Deferred 异常:无法读取未定义的属性“MyEnum1” TypeError:无法读取未定义的属性“MyEnum1”
【问题讨论】:
-
jQuery.Deferred exception在属性不存在的情况下,当您的代码位于 jquery 回调(例如 doc.ready)中时会发生。如果您根据 Rory 的回答正确使用()(或未正确使用),那么您的代码可能在您的var设置正确之前运行(例如,您的<script src=myconstants.js不起作用。添加alert作为包含脚本中的第一行以确保其正常工作。
标签: javascript jquery asp.net-mvc asp.net-4.5