У меня есть представление, которое позволяет пользователю вводить/редактировать данные для нового виджета. Я хотел бы сформировать эти данные в json-объект и отправить его на контроллер через AJAX, чтобы я мог выполнить проверку на сервере без обратной передачи.
У меня все работает, но я не могу понять, как передавать данные, поэтому мой метод контроллера может принимать сложный тип виджетов вместо отдельных параметров для каждого свойства.
Итак, если это мой объект:
public class Widget
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
Я бы хотел, чтобы мой метод контроллера выглядел примерно так:
public JsonResult Save(Widget widget)
{
...
}
В настоящее время мой jQuery выглядит так:
var formData = $("#Form1").serializeArray();
$.post("/Widget/Save",
formData,
function(result){}, "json");
В моей форме (Form1) есть поле ввода для каждого свойства виджета (Id, Name, Price). Это отлично работает, но в конечном итоге передает каждое свойство виджета в качестве отдельного параметра для моего метода контроллера.
Есть ли способ "перехватить" данные, возможно, использовать ActionFilterAttribute и десериализовать его до объекта Widget до вызова метода контроллера?