我有一个视图,允许用户输入/编辑新Widget的数据。我想将数据组成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对象?
$.post()
,其中我只添加了一个通用的alert('Successful');
,不确定为什么它没有运行,但是它确实发布了我的数据,这让我很高兴,所以+1。当我在action
中拥有method=post
和我的控制器/更新时,不确定为什么我的简单$('#Form1').submit()
不起作用。 - vapcguy, "json"
,警报就会起作用。这是给其他人的提示。 - vapcguy