使用 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
总是空的。
我正在尝试使用 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
总是空的。