0

ASP .net MVC 4 で json をモデルにバインドしようとしています。モデルは作成されますが、プロパティは入力されません。

私のJavaScript:

   $.ajax({
     type: 'POST',
        url: "/Admin/" + method,
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(form.serializeArray()),
        success: function (data) {
            if (data.Success == true) {


            }
        }
    });

私のクラス:

public class Taxes {
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Rate { get; set; } }

私の方法:

[HttpPost]
public JsonResult AddTax(Taxes tax)
{

    return Json(new { Success = true, tax.Id });
}

Json:

[{"name":"Id","value":"1"},{"name":"Name","value":"fsdfs"},{"name":"Rate","value":"18"}]

結果は次のとおりです。

Id = 0
Name = Null
Rate = 0
4

1 に答える 1

2

問題が何であるかを書きましたが、それを読んでいないだけです。JSON.stringify(form.serializeArray())への呼び出し は、これを生成します:

[{"name":"Id","value":"1"},{"name":"Name","value":"fsdfs"},{"name":"Rate","value":"18"}]

次のようなものにのみマッピングできます。

IEnumerable<SampleClass> model

SampleClass にはプロパティがあります。

public class SampleClass
    {
         public string name {get;set;}
         public string value {get;set;}
    }

次のような別の種類のメソッドが必要です。

  1. JavaScript オブジェクトを作成する
  2. form.serializeArray() で作成された配列の各メンバーに対して、名前 member.name と値 member.value を持つオブジェクトにプロパティを追加します。

JSON.stringify は Taxes クラスの適切な JSON 表現を生成します。

ここで実装を確認してください:

https://github.com/hongymagic/jQuery.serializeObject

于 2013-09-21T06:23:55.937 に答える