2009-07-13 3 views
5

mi piacerebbe utilizzare il modello vincolante per mantenere i miei controllori cercando pulito, si può vedere come molto più bello sta usando vincolante modello:Come fare Modello Binding con jQuery Ajax

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 
} 

nel fare vincolante modello, possiamo semplicemente usare un modulo con i nomi corretti nel Html.TextBox("")

che dire di jQuery? Come posso assicurarmi che quando faccio una chiamata $.post(url, data, callback, dataType) o $.ajax(options) allo Create(Person personToCreate) che l'oggetto Persona venga riempito correttamente?

risposta

4

è necessario:

  1. Fai i nomi delle proprietà nei dati corrispondono l'argomento/proprietà di nomi di tipo rilegati.
  2. Fornire sempre un valore per tutti gli argomenti/proprietà non annullabili del tipo associato.

Il numero 2 è il più grande in termini di perché il binding a persona può comportarsi in modo diverso rispetto alla specifica di singoli argomenti di azione per ogni proprietà. Se si dispone di un tipo con una proprietà non nullable denominata "Foo", il mancato invio di un elemento foo nel modulo impedirà l'associazione.

+0

E l'unico modo per aggirare è quello di Raccoglitori modello personalizzati? – Matt

+0

Oppure modificare il tipo di proprietà in null. –

+0

Perfetto, grazie! – Matt