【发布时间】:2010-09-21 00:41:54
【问题描述】:
我有一个视图,允许用户输入/编辑新窗口小部件的数据。我想将该数据形成一个 json 对象并通过 AJAX 将其发送到我的控制器,这样我就可以在服务器上进行验证而无需回发。
我已经完成了所有工作,只是我不知道如何传递数据,因此我的控制器方法可以接受复杂的 Widget 类型,而不是每个属性的单独参数。
所以,如果这是我的对象:
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) 为 Widget 上的每个属性(Id、Name、Price)都有一个输入字段。这很好用,但它最终将 Widget 的每个属性作为单独的参数传递给我的控制器方法。
有没有一种方法可以“拦截”数据,可能使用 ActionFilterAttribute,然后在调用控制器方法之前将其反序列化为 Widget 对象?
【问题讨论】:
标签: asp.net jquery asp.net-mvc json