ASP.NET MVC JSON Опубликовать HTML-форму для просмотра? - PullRequest
4 голосов
/ 02 декабря 2009

У меня есть следующий код:

JQuery:

$.ajax({
    url: '/personcontroller/getperson',
    cache: false,
    type: "POST",
    data: $('#person').serialize(),
    success: function(data) {
      alert('yay');
    }
    });
});

Контроллер:

public ActionResult getPerson(Person person)
{
    return new Json(person);
}

Форма HTML / Искра:

<form id="person">
   <input id="person.Id" type="hidden" value="${ViewData.Model.Person.Id}" />
   <input id="person.Name" value="${ViewData.Model.Person.Name}"></input>
   <input id="person.Age" value="${ViewData.Model.Person.Age}"></input>
   <input value="${ViewData.Model.Person.Gender}"></input>
</form>

Когда я отправляю сообщение ajax с формой и ставлю точку останова в моем действии. Объект person не заполняется входными значениями, я чувствую, что пропускаю что-то действительно простое ... Не могли бы вы указать мне: |

Ответы [ 2 ]

5 голосов
/ 02 декабря 2009

Для корректного размещения входных данных необходим атрибут name. Вы должны добавить атрибут имени, который соответствует Id.

<form id="person">
   <input id="person.Id" name="person.Id" type="hidden" value="${ViewData.Model.Person.Id}" />
   <input id="person.Name" name="person.Name" value="${ViewData.Model.Person.Name}"></input>
   <input id="person.Age" name="person.Age" value="${ViewData.Model.Person.Age}"></input>
</form>
2 голосов
/ 02 декабря 2009

Вы должны использовать:

public ActionResult getPerson([Bind(Prefix="person")]Person person)

EDIT

И как заметил Майкл Гаттузо, вы должны заполнить имя свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...