这是一个问题, 我正在使用$ .ajax发布到MVC控制器。 我的内容类型& dataType是json。 我发布一个json对象没有问题,但我可以在同一帖子上发布一个带有其他参数的json对象吗? (比如id或字符串)?
例如:
var jsonObject = JSON.stringify(data);
var id = 1;
$.ajax({
url: 'some url',
type: 'POST',
data: {
jsonObject: jsonObject,
id: id},
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (data) {
},
error: function (data, event) {
},
});
[编辑] - 额外信息用于添加'id'作为属性没有帮助的问题,因为我在服务器端(MVC)的对象模型没有属性'id'它。假设我的'数据'对象模型是:
class Temp{
string name
string phone
}
现在,当我将json“POST”到MVC中的控制器时,我希望在POST上包含'id'参数。
所以控制器看起来像:
[HttpPost]
public JsonResult SampleMethod (Temp temp, int id){
...
}
答案 0 :(得分:1)
没有必要对这些东西进行字符串化,jQuery会为你做这些:
// not necessary var jsonObject = JSON.stringify(data);
var id = 1;
$.ajax({
"url": 'some url',
"type": 'POST',
"data": {
"jsonObject": data,
"id": id
},
"dataType": 'json',
"success": function (data) {
},
"error": function (data, event) {
},
});
以及不需要content_type,dataType
会相应地设置它。在服务器上,您得到(作为查询参数):
...jsonObject=<stringified data>&id=1234...
[编辑]
为了只传递数据对象,您可以将id
添加为属性:
var id = 1;
data.myId = id;
$.ajax({
"url": 'some url',
"type": 'POST',
"data": data,
...