У меня есть JS-файл, который создает строку JSON, которую я строгу и отправляю с вызовом AJAX на сервер, используя Fiddler. Я вижу, что JSON отформатирован правильно, и мое действие вызывается, когда оно останавливается в точке останова но моя модель имеет только Nulls.MVC Model binding JSON
Вот код JS:
var testString = { id: "1", date: "28/04/2013", sim: "B787", times: "0100", note: "Test note" };
$.ajax({
url: url,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(testString),
success: function (data) {
},
error: function (request, status, error) {
}
});
А вот модель:
[Serializable]
public class BookingModel
{
public int Id { get; set; }
public DateTime Date { get; set; }
public string Sim { get; set; }
public string Times { get; set; }
public string Note { get; set; }
}
Наконец вот действие, которое называется.
[HttpPost]
//[ValidateAntiForgeryToken]
public ActionResult Booking(BookingModel BookingModel)
{
return Json(new { sucess = 0});
}
И во время отладки BookingModel не показывает ничего, кроме NULL, но как я уже abouve Скрипач показывает строку как:
{"id":"1","date":"28/04/2013","sim":"B787","times":"0100","note":"Test note"}
Я был на этом в течение 2 дней, и теперь я получаю лысого кто-то, пожалуйста, помогите ... Это сводит меня с ума.
Спасибо.
Утес.
EDIT *
Ok немного больше информации выглядит, как он делает работу, но то, что я должен сделать это на первой контрольной точке, если я ударил F5, чтобы продолжить действие вызывается снова и на этот раз данные имеются и правильны.
Итак, мой вопрос сейчас, так как он работает во второй раунде на сервер, а не на первом?
Thanks
Cliff.
Реальный вопрос: почему браузер делает два запроса? Есть ли у вас какой-то забытый код, который вызывает одно и то же действие, но без отправки каких-либо данных? – StriplingWarrior
Да, я обнаружил, что недостатком является «Return False» в конце функции, чтобы страница была отправлена AJAX, а затем снова через обычную обратную передачу. Итак, теперь это разрешено, и я получаю данные при первом вызове. Однако теперь я обнаружил, что могу получить либо данные, привязанные к моей модели, либо другие поля формы, которые я не хочу связывать, но не оба .... Очень короткие волосы теперь с этим ... –
У вас есть несколько здесь, но самым простым может быть включение данных модели на URL-адрес действия формы и представление данных формы через AJAX.(Вы можете объявить форму с помощью Ajax.Form() вместо HTML.Form()) – StriplingWarrior