2

コード

javascript オブジェクトの配列をサーバーに送信できません。ModelBinder 標準では、この形式は認識されません。

私のサーバーにはクラスがあります:

public class PessoaViewModel
{
    [HiddenInput(DisplayValue = false)]
    public int Id { get; set; }

    public string Nome { get; set; }
    public string Tipo { get; set; }
    public string CPF { get; set; }

    public ICollection<TelefoneViewModel> Telefones { get; set; }
    public ICollection<EnderecoViewModel> Enderecos { get; set; }
    public ICollection<EmailViewModel> Emails { get; set; }
    public PessoaViewModel Conjuge { get; set; }
}

public class TelefoneViewModel
{
    [HiddenInput(DisplayValue = false)]
    public int Id { get; set; }

    [AdditionalMetadata("class", "span2")]
    [AdditionalMetadata("placeholder", "Tipo")]
    public string Tipo { get; set; }

    [DataType(DataType.PhoneNumber)]
    [AdditionalMetadata("class", "span2")]
    public string Numero { get; set; }

    [HiddenInput(DisplayValue = false)]
    public int Ordem { get; set; }
}

コードでまだ使用されていないため、クラスの残りの部分はリストしていません。

私のJavaScript

$.ajax
    url:  $(form).attr("action")
    type: "POST"
    error: (err, errType, errMessage) -> 
        console.error a.statusText
    cache: false
    data: ko.mapping.toJS(@, ignoreFunctionsMapping) 
    success: (data, txtStatus) -> console.log "OK!!?? On server maybe not!"

サーバー結果

アクションバインダー

全体画像: http://i.stack.imgur.com/NeIm1.jpg

質問

ご覧のとおり、投稿は行われており、値は正しいです。しかし、asp.net mvc はオブジェクトを正しく埋めませんTelefones!

私は何を間違っていますか?

4

1 に答える 1

1

あなたの問題は、「。」がないためです。次の形式にする必要があります。

Telefones[0].Id: 1
Telefones[0].Ordem: bli
于 2015-06-08T08:22:43.173 に答える