2009-07-13 1 views
5

Я хотел бы использовать привязки, чтобы держать мои контроллеры глядя уборщик модель, вы можете увидеть, насколько лучше он использует модель привязки:Как сделать модель Связывание с JQuery Ajax

public ActionResult Create(Person personToCreate) 
{ 
    //Create person here 
} 

против

public ActionResult Create(string firstName, string lastName, string address, string phoneNum, string email, string postalCode, string city, string province, string country) 
{ 
    //Create person here 
} 

при выполнении модели связывания, мы можем просто использовать форму с правильными именами в Html.TextBox("")

Что о JQuery? Как я могу убедиться, что, когда я делаю $.post(url, data, callback, dataType) или $.ajax(options), позвоните в Create(Person personToCreate), чтобы объект Person был заполнен правильно?

ответ

4

Вам нужно:

  1. Сделать имена свойств в данных соответствуют аргументу/свойство имен связанных типа.
  2. Всегда указывайте значение для всех непустых аргументов/свойств связанного типа.

Номер 2 является большим в плане того, почему привязка к человеку может вести себя иначе, чем указание индивидуальных аргументов действий для каждого свойства. Если у вас есть тип с атрибутом non-nullable, называемым «Foo», то неспособность предоставить элемент foo в вашей форме предотвратит привязку.

+0

И единственный способ обойти это Custom Custom Binders? – Matt

+0

Или изменить тип свойства на значение NULL. –

+0

Отлично, спасибо! – Matt

Смежные вопросы