2017-12-28 59 views
0

剣道グリッドからMVCコントローラにデータをポストする際に問題が発生しています。それが受け入れCredentialオブジェクトは、内部クラスとPOCOであり、以下のように定義されて剣道グリッドからASP.NET MVCコントローラへのデータの投稿

public JsonResult Search(Credential searchParam) 
{ 
    // Perform search 
} 

::私は私を思ってい

public class Credential 
{ 
    public class License 
    { 
     public string Prefix { get; set; } 
     public string Number { get; set; } 
     public string SubCategory { get; set; } 

     // Constructors... 
    } 

    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public License LicenseNumber { get; set; } 

    // Constructors... 
} 

私が投稿しようとしている具体的な行動は次のようになります

dataSource: { 
    transport: { 
     read: { 
      url: Router.action("Search", "Index"), 
      type: "post", 
      contentType: "application/json", 
      dataType: "json", 
      data: { 
       FirstName: $(".firstName").val(), 
       LastName: $(".lastName").val(), 
       LicenseNumber: { 
        Prefix: $(".cred1").val(), 
        Number: $(".cred2").val(), 
        SubCategory: $(".cred3").val() 
       } 
      } 
     } 
    }, 
    pageSize: 20 
}, 

現在、コントローラは言うエラーでアップスロー:問題は剣道グリッドがCredential私のデータソースを送信する方法であると定義されています。 Invalid JSON primitive: FirstName.

フィールド名を一重引用符で囲むだけでなく、JSON.stringifyと同じデータを無駄に送信することを試みました。

私はここで間違っていますか?あなたがしようとしました

+0

私は推測する、それが私は引用符に – edkeveked

答えて

0

var license = { 
        LicenseNumber: { 
        'Prefix': $(".cred1").val(), 
        'Number': $(".cred2").val(), 
        'SubCategory': $(".cred3").val() 
        } 
       } 
var data = { 'FirstName': $(".firstName").val(), 'LastName': $(".lastName").val(), 'LicenseNumber': license } 

dataSource: { 
     // code 
     data: JSON.stringify(data) 
     // code 
} 
+0

を行方不明の問題でなければなりません同じエラーが発生する:/ –

0

は(dataための追加引用符に注意してください)以下のことを試してみてください。

dataSource: { 
    transport: { 
     read: { 
      url: Router.action("Search", "Index"), 
      type: "post", 
      contentType: "application/json", 
      dataType: "json", 
      data: "{ 
       'FirstName': $(".firstName").val(), 
       'LastName': $(".lastName").val(), 
       'LicenseNumber': { 
        'Prefix': $(".cred1").val(), 
        'Number': $(".cred2").val(), 
        'SubCategory': $(".cred3").val() 
       } 
      }" 
     } 
    }, 
    pageSize: 20 
}, 
+0

@James_Parsons、とにかく助けがあれば、答えをupvoteして受け入れられるとマークすることを忘れないでください:) – edkeveked

関連する問題