1

创建字符串数组的 MVC 是

  public JsonResult GetInvalidFilesAJAX(JQueryDataTableParamModel param)
    {
        string[] invalidFiles = new string[] { "one.xls", "two.xls", "three.xls" };

        return Json(new
        {
            Status = "OK",
            InvalidFiles = invalidFiles
        });
    }

应该循环并打印出每个字符串的javascript是

  $.ajax(
                          {
                              type: 'POST',
                              url: 'http://localhost:7000/ManualProcess/GetInvalidFilesAJAX',
                              success: function (response) {
                                  if (response.Status == 'OK') {
                                      //Use template to populate dialog with text of Tasks to validate
                                      var results = {
                                          invalidFiles: response.InvalidFiles,
                                      };
                                      var template = "<b>Invalid Files:</b> {{#invalidFiles}} Filename: {{invalidFiles.value}} <br />{{/invalidFiles}}";
                                      var html = Mustache.to_html(template, results);

                                      $('#divDialogModalErrors').html('ERROR: The following files have been deleted:');
                                      $('#divDialogModalErrorFiles').html(html);

如何引用数组中的字符串?上面的方法不正确。我发现的所有示例似乎都是针对 Jason 集合具有属性名称的情况。在我的情况下,它只是一个键值对(我猜?)

4

1 回答 1

1

没有内置的方式。您必须自己将 JSON 转换为数组或循环遍历数据,例如,

var data = JSON.parse(jsonString); // Assuming JSON.parse is available
var arr = [];
for (var i = 0, value; (value = data[i]); ++i) {
  arr.push(value);
}

或者:

var arr = [];
for (var prop in data){
  if (data.hasOwnProperty(prop)){
    arr.push({
      'key' : prop,
      'value' : data[prop]
    });
  }
}

然后显示它:

var template = "{{#arr}}<p>{{value}}</p>{{/arr}}";
var html = Mustache.to_html(template, {arr: arr});

这是假设您的 JSON 对象是一层深度。

于 2013-05-08T18:41:00.713 回答