使用AJAX将数据发送到FormCollection

时间:2017-12-08 17:00:08

标签: ajax asp.net-mvc formcollection

我尝试使用FormCollection而不是模型。 我创建了我的AJAX请求:

myData = {
        id: '1',
        name: $("#name").val()
    };
    $.ajax({
        type: "GET",
        url: '/testController/Test',
        data: JSON.stringify(myData),
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            // do something
        },
        error: function (erro) {
            console.debug(erro);
        }
    });

我的FormCollection控制器

[HttpGet, ValidateInput(false)]
    public JsonResult Test(FormCollection formData)
    {
        string name = formData["name"].ToString();
    }

但是,我的formData始终为null。有谁知道为什么?

由于

1 个答案:

答案 0 :(得分:1)

如果您正在提出GET请求,那么您实际上是在提出此请求。您需要通过Request['id']& Request['name']

请求URI:/testController/Test?id={data_id}&name={data_name}

请求正文:<empty>

但是,如果您要发出POST请求,则表示您提出此请求:

请求URI:/testController/Test

请求正文:{"id":"data_id","name":"data_name"}

解析请求正文,您可以通过FormCollection访问数据。这就是为什么当你发出GET请求时FormCollection总是为空。