2013-07-29 21 views
0

我有一些问题建立一个JSON字符串的GUID传递给我的行动方法。通过一个列表<Guid>作为Json问题的行动方法

我收集了我的GUID到一个数组是这样的:

var regEx = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/; 
     var arrJson = {}; 
     var i = 0; 
     $('#destGrid tr').each(function() { 
      $(this).find('td').each(function() { 
       var td = $(this); 
       if (regEx.test(td[0].innerText)) { 
        arrJson[i] = td[0].innerText; 
        i++; 
       } 
      }); 
     }); 

我那么阵列上使用json.stringify,并给它帕拉姆名称的操作方法需要。

if (arrJson[0] != null) { 
      var jsonData = JSON.stringify({ selectedMatters: arrJson }); 

在这一点上,如果我调试的JavaScript,我可以检查字符串的值,我可以看到所有的报价已经越狱:

"{\"selectedMatters\":{\"0\":\"f7c918d6-4e40-e211-9854-00155d010d00\",\"1\":\"77d4d836-ce45-e211-9854-00155d010d00\",\"2\":\"c6849622-cf45-e211-9854-00155d010d00\",\"3\":\"0ce4dc5b-cf45-e211-9854-00155d010d00\"}}" 

的完整性方法的签名外观像这样:

public bool UpdateMattersForGrid(List<Guid> selectedMatters) 
{ 
} 

我已经尝试了一些东西,但大部分时间selectedMatters为null。任何人都可以解释为什么这不是模型绑定,以及我如何纠正它。我发现的其他例子只是告诉我要做我现在正在做的事情。

谢谢

+0

你必须保持的GUID的顺序? –

回答

2

我会从一个JavaScript对象{}更改为JavaScript数组[]。这将映射到List<>

所以的JavaScript将是这个样子:

var regEx = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/; 
     var arrJson = []; //change to array 
     var i = 0; 
     $('#destGrid tr').each(function() { 
      $(this).find('td').each(function() { 
       var td = $(this); 
       if (regEx.test(td[0].innerText)) { 
        arrJson.push(td[0].innerText); // push into array 
        i++; 
       } 
      }); 
     }); 
+0

我现在感觉多么愚蠢!谢谢你,现场。 –

相关问题