Como fazer Model Binding com jQuery Ajax
-
13-09-2019 - |
Pergunta
Eu gostaria de usar o modelo de ligação para manter meus controladores olhar mais limpo, você pode ver como muito mais agradável que está usando modelo de ligação:
public ActionResult Create(Person personToCreate)
{
//Create person here
}
vs
public ActionResult Create(string firstName, string lastName, string address, string phoneNum, string email, string postalCode, string city, string province, string country)
{
//Create person here
}
Ao fazer a ligação modelo, podemos apenas usar um formulário com os nomes corretos na Html.TextBox("")
E sobre jquery? Como posso ter certeza de que quando eu faço uma $.post(url, data, callback, dataType)
ou uma chamada $.ajax(options)
para Create(Person personToCreate)
que o objeto Person é preenchido corretamente?
Solução
Você precisa:
- Faça os nomes de propriedades em dados correspondem o argumento / propriedade de nomes de tipo encadernados.
- Sempre fornecer um valor para todos os argumentos / propriedades do tipo limite não anuláveis.
Número 2 é um dos grandes em termos de por ligação a pessoa pode se comportar de forma diferente do que especificar argumentos de acção individuais para cada propriedade. Se você tem um tipo com uma propriedade não-nulo chamado "Foo", então não fornecer um item de foo na sua forma irá impedir a ligação.