使用 AJAX 将数据发送到 FormCollection

Using AJAX to send data to 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 始终为空。有谁知道为什么?

谢谢

如果您正在发出 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 总是空的。