我有一个单独的js文件,我把我的js放在那里。我什至无法进入 js 来调试它以查看问题所在。
此页面之前的Firebug具有我可以看到的内联js(从我的母版页(_Layout.cshtml)。
一旦我进入这个页面,我就会从Firebug那里得到这个:
此页面上没有 Javascript 如果标签具有"type"属性,则它应该等于"text/javascript"或"application/javascript"。此外,脚本必须是可解析的(语法正确)。
我不知道我错过了什么来简单地填写这个下拉列表.....
这是我的新js文件,其中包含以下内容:
$(document).ready(function () {
GetCategories();
});
function GetCategories() {
$.ajax({
type: "POST",
url: "Index/Category",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var listItems = "";
for (var i = 0; i < data.length; i++) {
listItems += "<option value='" + data.CategoryID + "'>" + data.Description + "</option>";
}
$("#Categories").html(listItems);
}
});
}
这是 html 页面的内容。请注意,我的 html 在我的母版页中。所以,我只需要一个简单的脚本...
<div title="JSON callback for dropdownlist">
<table>
<tr>
<td>
<select id="Categories">
</select>
</td>
</tr>
</table>
</div>
<script type="text/javascript" src="../../Scripts/JSON_DDL.js"></script>
这是我的结果:
[{"CategoryID":1,"Description":"ECommerce","Projects":[]},{"CategoryID":2,"Description":"Medical","Projects":[]}]
我过去在Firebug上遇到过类似的问题。
一种做法是Firebug崩溃并且无法正确读取,请关闭并重新打开浏览器。它不像以前那样普遍,但它确实发生了。
第二个问题花了我很长时间才发现它发生在我身上的时间......它让我疯狂了几个小时 - 但解决方案非常简单 - 有时如果你的JavaScript语法不好(例如缺少右大括号),它不会被读取,浏览器甚至不会显示错误。仔细检查您的代码。