C# 更正JSON结果对象

C# 更正JSON结果对象,c#,javascript,ajax,asp.net-mvc,json,C#,Javascript,Ajax,Asp.net Mvc,Json,我有一个控制器动作如下: List<string> abcd = new List<string>() foreach (var i in images) { abcd.Add("{url:'"+GetImageUrl(i)+"'}"); } return Json(abcd, JsonRequestBehavior.AllowGet); var abcd = images.Select(i => new { url = GetImageUrl(

我有一个控制器动作如下:

List<string> abcd = new List<string>()
foreach (var i in images)
{
    abcd.Add("{url:'"+GetImageUrl(i)+"'}");
}     
return Json(abcd, JsonRequestBehavior.AllowGet);
var abcd = images.Select(i => new { url = GetImageUrl(i) }).ToList();
return Json(abcd, JsonRequestBehavior.AllowGet);
但我想要的结果是:

images:[{url:'/PropertyImage/GetPropertyImage?imageId=1'}, {url:'/PropertyImage/GetPropertyImage?imageId=2'}, {url:'/PropertyImage/GetPropertyImage?imageId=8'}]
在我的JavaScript中,我有

$.ajax({
     type: "GET",
     url: url,
     success: function (result) {
         console.log(JSON.stringify(result));
         var data = {
             images: [result]
         };

         template = "{{#images}}<a href='{{url}}'><img class='imageborder' src='{{url}}' style='width:150px;height:150px'></img></a>{{/images}}";
         renderedOutput= Mustache.to_html(template,data);
         $('#Propertyimagelinks').html(renderedOutput);
     }
 });
$.ajax({
键入:“获取”,
url:url,
成功:功能(结果){
log(JSON.stringify(result));
风险值数据={
图片:[结果]
};
template=“{{{#images}}{{{/images}}”;
renderOutput=Mustache.to_html(模板、数据);
$('#Propertyimagelinks').html(renderOutput);
}
});

如何获得正确的输出?

与其尝试手动操作JSON字符串,不如使用ASP.NET MVC内置的JSON序列化功能和一点Linq,如下所示:

List<string> abcd = new List<string>()
foreach (var i in images)
{
    abcd.Add("{url:'"+GetImageUrl(i)+"'}");
}     
return Json(abcd, JsonRequestBehavior.AllowGet);
var abcd = images.Select(i => new { url = GetImageUrl(i) }).ToList();
return Json(abcd, JsonRequestBehavior.AllowGet);
在JavaScript结果处理程序中,使用以下命令:

var data = { images: result };

或者,您可以在控制器中使用此选项:

var abcd = images.Select(i => new { url = GetImageUrl(i) }).ToList();
return Json(new { images = abcd }, JsonRequestBehavior.AllowGet);
在JavaScript中:

var data = result;