Javascript 基于Ilist获取JSON结果<;int>;在MVC中

Javascript 基于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

我需要从MVC操作返回的IList构建一个类似“1-2-3-4-5”的字符串

行动:

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;i我的理解是AJAX响应需要一个
JsonResult
,所以这可能不起作用。AJAX也可以接收字符串。但理想的解决方案是让服务器端方法返回JSON,因为它可以在许多地方使用。谢谢,我更喜欢@beautifulcoder answer,因为它是适应我的代码的最简单的方法。无论如何谢谢你
var r = jsonAdListIds[0];
for (var i = 1; i < jsonAdListIds.length; i++) {
  r += '-' + jsonAdListIds[i];
}