Javascript &引用;未捕获类型错误:e.slice不是函数;将json数据传递给“中的视图”;“果园”; public ActionResult分组() { 返回视图(); } 公共操作结果读取([DataSourceRequest]DataSourceRequest请求,字符串文本) { var result=_auto.Table.ToList(),其中(s=>s.Charactres.Contains(text)); 返回Json(result.ToDataSourceResult(request),JsonRequestBehavior.AllowGet); } 查看代码:`在此处输入代码` @模型IEnumerable @{ ViewBag.Title=“分组”; } 分组 客户 @(Html.Kendo().AutoComplete()) .名称(“数据”) .DataTextField(“联系人姓名”) .过滤器(“包含”) .MinLength(3) .HtmlAttributes(新的{style=“width:250px”}) .占位符(“键入客户名称”) .DataSource(source=>source .Custom() //.Group(g=>g.Add(“国家”,类型(字符串))) .运输(运输=>运输 .Read(Read=> { read.Action(“read”,“AutoComplete”) .数据(“非附加数据”); })) .ServerFiltering(true)) ) 附加数据()上的函数{ 返回{ 文本:$(“#数据”).val() }; }
尝试从控制器方法返回结果,而不使用ToDataSourceResult()方法。这似乎是在不将客户机javascript寻找的数组包装到对象中的情况下发送数据 因此,您的控制器返回语句如下所示:Javascript &引用;未捕获类型错误:e.slice不是函数;将json数据传递给“中的视图”;“果园”; public ActionResult分组() { 返回视图(); } 公共操作结果读取([DataSourceRequest]DataSourceRequest请求,字符串文本) { var result=_auto.Table.ToList(),其中(s=>s.Charactres.Contains(text)); 返回Json(result.ToDataSourceResult(request),JsonRequestBehavior.AllowGet); } 查看代码:`在此处输入代码` @模型IEnumerable @{ ViewBag.Title=“分组”; } 分组 客户 @(Html.Kendo().AutoComplete()) .名称(“数据”) .DataTextField(“联系人姓名”) .过滤器(“包含”) .MinLength(3) .HtmlAttributes(新的{style=“width:250px”}) .占位符(“键入客户名称”) .DataSource(source=>source .Custom() //.Group(g=>g.Add(“国家”,类型(字符串))) .运输(运输=>运输 .Read(Read=> { read.Action(“read”,“AutoComplete”) .数据(“非附加数据”); })) .ServerFiltering(true)) ) 附加数据()上的函数{ 返回{ 文本:$(“#数据”).val() }; },javascript,json,Javascript,Json,尝试从控制器方法返回结果,而不使用ToDataSourceResult()方法。这似乎是在不将客户机javascript寻找的数组包装到对象中的情况下发送数据 因此,您的控制器返回语句如下所示: public ActionResult Grouping() { return View(); } public ActionResult Read([DataSourceRequest] DataSourceRequest request, s
public ActionResult Grouping()
{
return View();
}
public ActionResult Read([DataSourceRequest] DataSourceRequest request, string text)
{
var result = _auto.Table.ToList().Where(s => s.Charactres.Contains(text));
return Json(result.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
view code:`enter code here`
@model IEnumerable<Autocomplete.Models.Autocomplete>
@{
ViewBag.Title = "Grouping";
}
<h2>Grouping</h2>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script src="~/Modules/Autocomplete/Scripts/kendo/2014.3.1119/jquery.min.js"></script>
<script src="~/Modules/Autocomplete/Scripts/kendo/2014.3.1119/kendo.all.min.js"></script>
<script src="~/Modules/Autocomplete/Scripts/kendo/2014.3.1119/kendo.aspnetmvc.min.js"></script>
<link href="~/Modules/Autocomplete/Content/kendo/2014.3.1119/kendo.common.min.css" rel="stylesheet" type="text/css" />
<link href="~/Modules/Autocomplete/Content/kendo/2014.3.1119/kendo.default.min.css" rel="stylesheet" type="text/css" />
<link href="~/Modules/Autocomplete/Content/kendo/2014.3.1119/kendo.dataviz.min.css" rel="stylesheet" type="text/css" />
<link href="~/Modules/Autocomplete/Content/kendo/2014.3.1119/kendo.mobile.all.min.css" rel="stylesheet" type="text/css" />
<link href="~/Modules/Autocomplete/Content/kendo/2014.3.1119/kendo.dataviz.default.min.css" rel="stylesheet" type="text/css" />
<div class="demo-section">
<h4>Customers</h4>
@(Html.Kendo().AutoComplete()
.Name("data")
.DataTextField("ContactName")
.Filter("contains")
.MinLength(3)
.HtmlAttributes(new { style = "width:250px" })
.Placeholder("Type a customer name")
.DataSource(source => source
.Custom()
//.Group(g => g.Add("Country", typeof(string)))
.Transport(transport => transport
.Read(read =>
{
read.Action("Read", "AutoComplete")
.Data("onAdditionalData");
}))
.ServerFiltering(true))
)
</div>
<script>
function onAdditionalData() {
return {
text: $("#data").val()
};
}
</script>
我从另一个stackoverflow答案中得到了这个解决方案:
这个解决方案对我有效。
祝你好运 尝试从控制器方法返回结果,而不使用ToDataSourceResult()方法。这似乎是在不将客户机javascript寻找的数组包装到对象中的情况下发送数据 因此,您的控制器返回语句如下所示:
public ActionResult Grouping()
{
return View();
}
public ActionResult Read([DataSourceRequest] DataSourceRequest request, string text)
{
var result = _auto.Table.ToList().Where(s => s.Charactres.Contains(text));
return Json(result.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
view code:`enter code here`
@model IEnumerable<Autocomplete.Models.Autocomplete>
@{
ViewBag.Title = "Grouping";
}
<h2>Grouping</h2>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script src="~/Modules/Autocomplete/Scripts/kendo/2014.3.1119/jquery.min.js"></script>
<script src="~/Modules/Autocomplete/Scripts/kendo/2014.3.1119/kendo.all.min.js"></script>
<script src="~/Modules/Autocomplete/Scripts/kendo/2014.3.1119/kendo.aspnetmvc.min.js"></script>
<link href="~/Modules/Autocomplete/Content/kendo/2014.3.1119/kendo.common.min.css" rel="stylesheet" type="text/css" />
<link href="~/Modules/Autocomplete/Content/kendo/2014.3.1119/kendo.default.min.css" rel="stylesheet" type="text/css" />
<link href="~/Modules/Autocomplete/Content/kendo/2014.3.1119/kendo.dataviz.min.css" rel="stylesheet" type="text/css" />
<link href="~/Modules/Autocomplete/Content/kendo/2014.3.1119/kendo.mobile.all.min.css" rel="stylesheet" type="text/css" />
<link href="~/Modules/Autocomplete/Content/kendo/2014.3.1119/kendo.dataviz.default.min.css" rel="stylesheet" type="text/css" />
<div class="demo-section">
<h4>Customers</h4>
@(Html.Kendo().AutoComplete()
.Name("data")
.DataTextField("ContactName")
.Filter("contains")
.MinLength(3)
.HtmlAttributes(new { style = "width:250px" })
.Placeholder("Type a customer name")
.DataSource(source => source
.Custom()
//.Group(g => g.Add("Country", typeof(string)))
.Transport(transport => transport
.Read(read =>
{
read.Action("Read", "AutoComplete")
.Data("onAdditionalData");
}))
.ServerFiltering(true))
)
</div>
<script>
function onAdditionalData() {
return {
text: $("#data").val()
};
}
</script>
我从另一个stackoverflow答案中得到了这个解决方案:
这个解决方案对我有效。
祝你好运 对我来说,解决方案是将模型(模式)定义为与接收到的数据相同 在我的示例(ASP.NET MVC)中,我使用正确的模式设置了一个自定义数据源:
return Json(result, JsonRequestBehavior.AllowGet);
参考资料:
对我来说,解决方案是将模型(模式)定义为与接收到的数据相同 在我的示例(ASP.NET MVC)中,我使用正确的模式设置了一个自定义数据源:
return Json(result, JsonRequestBehavior.AllowGet);
参考资料:
以下更改对我有效,在
dataSource
之后为kendoGrid
添加了模式:
.DataTextField("description")
.DataValueField("name")
.DataSource(dataSource => dataSource
.Custom()
.Type("aspnetmvc-ajax")
.ServerPaging(false)
.ServerSorting(false)
.ServerFiltering(false)
.Transport(transport => transport
.Read(read => read.Action("Get_Users", "User"))
)
.Schema(schema => schema
.Data("Data")
.Model(model =>
{
model.Id("description");
model.Field("name", typeof(string));
})
)
)
以下更改对我有效,在
dataSource
之后为kendoGrid
添加了模式:
.DataTextField("description")
.DataValueField("name")
.DataSource(dataSource => dataSource
.Custom()
.Type("aspnetmvc-ajax")
.ServerPaging(false)
.ServerSorting(false)
.ServerFiltering(false)
.Transport(transport => transport
.Read(read => read.Action("Get_Users", "User"))
)
.Schema(schema => schema
.Data("Data")
.Model(model =>
{
model.Id("description");
model.Field("name", typeof(string));
})
)
)