Jquery 返回json mvc时如何忽略逗号
我将JSON从控制器返回到视图,以便在MVC中填充jquery自动完成文本框。问题是,我的一些数据包含逗号,因此被自动完成帮助器拆分 这是我的密码 控制器:Jquery 返回json mvc时如何忽略逗号,jquery,asp.net-mvc,autocomplete,split,Jquery,Asp.net Mvc,Autocomplete,Split,我将JSON从控制器返回到视图,以便在MVC中填充jquery自动完成文本框。问题是,我的一些数据包含逗号,因此被自动完成帮助器拆分 这是我的密码 控制器: public ActionResult GetData() { var data = repository.GetData(); return Json(data); } 视图(脚本): 如您所见,我正在使用jquery.split帮助程序分割返回的Json。我是应该使用正则表达式
public ActionResult GetData()
{
var data = repository.GetData();
return Json(data);
}
视图(脚本):
如您所见,我正在使用jquery.split帮助程序分割返回的Json。我是应该使用正则表达式还是应该使用完全不同的方法?好吧,经过多次反复和多次编辑,这里是我的最终答案。:) 另外,我相信split函数是纯javascript而不是jquery。我假设您使用的是内置函数。如果你是,你有几个不同的选择
$("#Data").autocomplete({
source: "../MyController/GetData"
});
您的操作很可能需要响应get请求和post请求,并且您的数据可能需要采用[{label:“something”,value:“1”},…]的形式。
这可以通过在发送数据之前使用查询对数据进行整形来实现
var data = from d in repository.GetData()
select new
{
label = d.[whatever you want the label to be]
value = d.[whatever you want the value to be]
};
return Json(data);
$.post("../MyController/GetData",
function(data) {
$("#Data").autocomplete({
source: JSON.parse(data),
max: 500,
matchContains: true
});
});
这假设数据的形式为[{label:“something”,value:“1”},…]
(有关如何使用Linq对其进行造型,请参见1)。JSON解析器将为您解决引号中的逗号问题$("#Data").autocomplete({
source: function(request, response) {
$.ajax({
url: "../MyController/GetData",
dataType: "json",
success: function(data) {
response( data );
}
})
}
});
(关于如何使用Linq塑造数据,请参见上文)- 你应该考虑使用,而不是硬编码的网址,以防你改变你的路线
- 相反,您应该使用解析操作的返回值。它通常会稍微多一些,并且在支持的较新浏览器中会产生更好的性能
$.post("../MyController/GetData",
function(data) {
$("#Data").autocomplete({
source: JSON.parse(data),
max: 500,
matchContains: true
});
});
$("#Data").autocomplete({
source: function(request, response) {
$.ajax({
url: "../MyController/GetData",
dataType: "json",
success: function(data) {
response( data );
}
})
}
});