Javascript 下拉列表未在剑道网格中填充
我无法在剑道下拉列表中填充数据,数据来自数据库。以下是我的剑道代码下拉列表:Javascript 下拉列表未在剑道网格中填充,javascript,c#,jquery,oop,kendo-ui,Javascript,C#,Jquery,Oop,Kendo Ui,我无法在剑道下拉列表中填充数据,数据来自数据库。以下是我的剑道代码下拉列表: function positionDropDownEditor(container, options) { $('<input name="Size" required data-bind="value:' + options.field + '"/>') .appendTo(container) .kendoDropDownList({ autoB
function positionDropDownEditor(container, options) {
$('<input name="Size" required data-bind="value:' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataTextField: "Name",
dataValueField: "Id",
dataSource: {
transport: {
read: {
dataType: "json",
url: "/Employee/AllPosition",
}
}
}
});
}
函数位置下拉编辑器(容器、选项){
$('')
.appendTo(容器)
.kendoDropDownList({
自动绑定:错误,
dataTextField:“名称”,
dataValueField:“Id”,
数据源:{
运输:{
阅读:{
数据类型:“json”,
url:“/Employee/AllPosition”,
}
}
}
});
}
以及数据来自的控制器:
public JsonResult AllPosition()
{
EmployeeService employeeService = new EmployeeService();
List<Position> positions= employeeService.GetAllPosition();
return Json(positions);
}
public JsonResult AllPosition()
{
EmployeeService EmployeeService=新EmployeeService();
List positions=employeeService.GetAllPosition();
返回Json(位置);
}
在下拉列表中没有填充数据有什么问题?请解释包括“容器、选项”在内的内容,以及它们包含的价值,以及我们为什么需要使用它们
谢谢您应该删除该标志
控制是否在初始化时将小部件绑定到数据源
编辑:
很抱歉,我完全忽略了它已经是false
。无论如何
如果从服务器得到正确的响应,是否签入浏览器的调试器?可能是某些属性无法正确序列化,服务器返回null
将此方法添加到您的Global.asax.cs
以捕获更多错误:它将打印在其他地方看不见的错误。。。如果错误在服务器上
protected void Application_EndRequest() {
if (Context.AllErrors != null) {
System.Diagnostics.Debugger.Break();
foreach (var ex in Context.AllErrors) {
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
}
更改控制器以执行以下操作:
public JsonResult AllPosition()
{
EmployeeService employeeService = new EmployeeService();
List<Position> positions= employeeService.GetAllPosition();
return Json(positions, JsonRequestBehavior.AllowGet);
}
经过一整天的努力,我解决了这个问题。我希望这能帮助其他人。真傻,花了我一整天的时间。最后我在AllPosition()中发现了问题。这里的返回类型将是sting。守则如下:
public string AllPosition()
{
EmployeeService employeeService = new EmployeeService();
List<Position> positions= employeeService.GetAllPosition();
var x = JsonConvert.SerializeObject(positions);
return x;
}
公共字符串AllPosition()
{
EmployeeService EmployeeService=新EmployeeService();
List positions=employeeService.GetAllPosition();
var x=JsonConvert.SerializeObject(位置);
返回x;
}
不要问我为什么返回“JsonConvert.SerializeObject(positions)”而不是返回“json(positions)”。我必须将返回类型从JsonResult转换为字符串
谢谢大家的关心和帮助 作为您可以使用的替代方案
通过将返回的JSON结果更改为允许GET@loanburger您是在谈论注释[HttpGet]还是返回类型?亲爱的@loanburger nopp,没有幸运伴侣。亲爱的@t3chb0t调试情绪会导致服务器500出错。看来json数据转换有问题。我正在尝试,但还没有解决。我建议您使用Json.NET来解决这个问题。我也有类似的问题,直到我使用了另一个框架,我才找到它。
url: "@Url.Action("Employee", "AllPosition")",new {@area = "AreaName"} type: "GET" }
public string AllPosition()
{
EmployeeService employeeService = new EmployeeService();
List<Position> positions= employeeService.GetAllPosition();
var x = JsonConvert.SerializeObject(positions);
return x;
}