У меня есть вид, который позволяет пользователю вводить / редактировать данные для нового виджета. Я хотел бы сформировать эти данные в объект 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). Это прекрасно работает, но в конечном итоге каждое свойство Widget передает в качестве отдельного параметра моему методу контроллера.
Есть ли способ, которым я мог бы "перехватить" данные, возможно, используя атрибут ActionFilterAttribute, и десериализовать его в объект Widget перед вызовом моего метода контроллера?