Javascript 基于Ilist获取JSON结果<;int>;在MVC中
我需要从MVC操作返回的IListJavascript 基于Ilist获取JSON结果<;int>;在MVC中,javascript,asp.net-mvc,json,Javascript,Asp.net Mvc,Json,我需要从MVC操作返回的IList构建一个类似“1-2-3-4-5”的字符串 行动: public virtual JsonResult AdvancedSearch(AdAdvancedSearchViewModel asViewModel) { IList<int> adIds = new List<int>(); try { var asDto = Mapper.Map<AdAdvancedSearchViewMode
public virtual JsonResult AdvancedSearch(AdAdvancedSearchViewModel asViewModel)
{
IList<int> adIds = new List<int>();
try
{
var asDto = Mapper.Map<AdAdvancedSearchViewModel, AdAdvancedSearchDto>(asViewModel);
adIds = _adService.AdvancedSearch(asDto);
}
catch
{
adIds = null;
}
return Json(adIds);
}
问题是我在“#adAdvancedSearchListForm#ids”HTML输入中得到一个类似“[1,2,3,4]”的字符串,我需要得到“1-2-3-4”,知道吗
谢谢。如果您想在客户端执行此操作,只需遍历结果数组并构建所需的字符串即可
$.getJSON("yourURL", { Name: "John", Loc: "2pm" },function(result){
var str="";
$.each(result,function(i,item){
str=str+"-"+item;
});
alert(str);
});
假设Name
和Loc是viewmodel的属性
如果要在服务器端执行此操作,可以使用String.Join
方法构建所需的字符串表示形式。您可能需要更新操作方法的返回类型
public string AdvancedSearch(AdAdvancedSearchViewModel asViewModel)
{
List<int> adIds = new List<int>();
//fill the list
var resutlStr= String.Join("-",adIds.ToArray());
return resutlStr;
}
公共字符串高级搜索(AdAdvancedSearchViewModel作为ViewModel)
{
列表adIds=新列表();
//填写清单
var resutlStr=String.Join(“-”,adIds.ToArray());
返回resultstr;
}
我更喜欢保留我的操作方法返回JSON结果,而不是这个字符串表示,因为与这个具体的字符串返回实现相比,返回JSON的操作方法可以在许多地方使用。AJAX返回一个数组,这是在转换列表时需要的 尝试将数组解析为字符串:
var r = jsonAdListIds[0];
for (var i = 1; i < jsonAdListIds.length; i++) {
r += '-' + jsonAdListIds[i];
}
var r=jsonAdListIds[0];
for(var i=1;iJsonResult
,所以这可能不起作用。AJAX也可以接收字符串。但理想的解决方案是让服务器端方法返回JSON,因为它可以在许多地方使用。谢谢,我更喜欢@beautifulcoder answer,因为它是适应我的代码的最简单的方法。无论如何谢谢你
var r = jsonAdListIds[0];
for (var i = 1; i < jsonAdListIds.length; i++) {
r += '-' + jsonAdListIds[i];
}