使用数据库中的JSON结果绑定选择下拉列表时出错
绑定Ddl模块的Jquery代码 这是我的控制器动作 错误 错误:jquery-1.10.2.min.js:21未捕获类型错误:无法读取未定义的属性“length” 由于在AJAX回调中使用type:POST,请确保控制器操作方法中包含的HttpPostAttribute属性如下:使用数据库中的JSON结果绑定选择下拉列表时出错,json,asp.net-mvc,drop-down-menu,Json,Asp.net Mvc,Drop Down Menu,绑定Ddl模块的Jquery代码 这是我的控制器动作 错误 错误:jquery-1.10.2.min.js:21未捕获类型错误:无法读取未定义的属性“length” 由于在AJAX回调中使用type:POST,请确保控制器操作方法中包含的HttpPostAttribute属性如下: public JsonResult GetModules() { var Query = "EXEC [dbo].[Usp_ComboBind] @TableName='Module'"; List&
public JsonResult GetModules()
{
var Query = "EXEC [dbo].[Usp_ComboBind] @TableName='Module'";
List<Usp_ComboBind_Module> objModule = objDbContext.Database.SqlQuery<Usp_ComboBind_Module>(Query).ToList();
return Json(objModule, JsonRequestBehavior.AllowGet);
}
注意:无法读取undefined的属性'length',因为您试图迭代一个具有未定义值的对象,因为$。每个对象都需要一个数组或集合对象。不相关,但删除无意义的contentType和数据属性,如果您进行POSTok,则不需要JsonRequestBehavior.AllowGet。谢谢,但错误并没有得到解决。yetUse$.eachResult,函数键,值{not Result.dthank您的代码在更改为Result而不是Result.d后仍然有效
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Job/GetModules",
data: "{}",
dataType: "json",
success: function (Result) {
$("#DdlModule").append("<option value='0'>---Select---</option>");
$.each(Result.d, function (key, value) {
$("#ddlmodule").append($("<option></option>").val(value.modId).html(value.modName));
});
},
error: function (Result) {
alert("Error");
}
});
public JsonResult GetModules()
{
var Query = "EXEC [dbo].[Usp_ComboBind] @TableName='Module'";
List<Usp_ComboBind_Module> objModule = objDbContext.Database.SqlQuery<Usp_ComboBind_Module>(Query).ToList();
return Json(objModule, JsonRequestBehavior.AllowGet);
}
[HttpPost]
public JsonResult GetModules()
{
var Query = "EXEC [dbo].[Usp_ComboBind] @TableName='Module'";
List<Usp_ComboBind_Module> objModule = objDbContext.Database.SqlQuery<Usp_ComboBind_Module>(Query).ToList();
return Json(objModule);
}
success: function (Result) {
if (typeof Result !== 'undefined' && Result != undefined) {
$("#DdlModule").append("<option value='0'>---Select---</option>");
$.each(Result, function (key, value) {
$("#ddlmodule").append($("<option></option>").val(value.modId).html(value.modName));
});
}
},