使用没有元素的JS发布表单值?

时间:2013-06-07 12:24:45

标签: javascript asp.net-mvc html-form html-form-post

我有一个带有属性的模型,其中一个是集合。

我希望有一个客户端JS函数,用一些值设置该集合(或通过一个单独的参数或通过我并不熟悉的模型绑定器将其发送到控制器操作)。

这怎么可能?

1 个答案:

答案 0 :(得分:1)

您可以使用JSON发送任意复杂的结构:

$.ajax({
    url: '/somecontroller/someaction',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify({
        id: 123,
        items: [
            { foo: 'bar 1' },
            { foo: 'bar 2' },
            { foo: 'bar 3' }
        ]
    }),
    success: function(result) {
        alert('ok');
    }
});

并且您的控制器操作将采用与JSON结构匹配的视图模型:

[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
    ...
}

以下是与此样本结构匹配的模型定义:

public class MyViewModel
{
    public int Id { get; set; }
    public ItemViewModel[] Items { get; set; }
}

public class ItemViewModel
{
    public string Foo { get; set; }
}