将 POST 参数传递给 WEB API2
Passing POST parameter to WEB API2
我有两个不同的模型需要传递到网络 api。这两个样本模型如下
public class Authetication
{
public string appID { get; set; }
}
public class patientRequest
{
public string str1 { get; set; }
}
为了开始工作,我创建了第三个模型,如下所示。
public class patientMaster
{
patientRequest patientRequest;
Authetication Authetication;
}
并传递我按照 jquery 代码创建的数据
var patientMaster = {
patientRequest : { "str1" : "John" },
Authetication : { "appID" : "Rick" }
}
$.ajax({
url: "http://localhost:50112/api/Patient/PostTestNew",
type: "POST",
data: {"": patientMaster}
});
为了抓住这个,我在控制器中创建了以下方法
[HttpPost]
public string PostTestNew(patientMaster patientMaster)
{
return " .. con .. ";
}
我的问题是
每当测试时我得到 patientMaster
对象但我没有得到任何数据 Authetication
对象也没有 patientRequest
对象
我也试过在 jquery 中传递 contenttype:json 但它不起作用
有人可以帮我解决这个问题吗?
你们非常接近。我添加了一个 FromBody 属性并指定了内容类型。我还会使您的 patientMaster
对象中的属性可公开访问。
patientMaster 对象:
public class patientMaster
{
public patientRequest patientRequest { get; set;}
public Authetication Authetication { get; set;}
}
API 控制器:
[HttpPost]
public string PostTestNew([FromBody]PatientMaster patientMaster)
{
return "Hello from API";
}
jQuery代码:
var patientRequest = { "str1": "John" };
var authentication = { "appID": "Rick" };
var patientMaster = {
"PatientRequest": patientRequest,
"Authentication": authentication
};
$.ajax({
url: "http://localhost:50112/api/Patient/PostTestNew",
type: "POST",
data: JSON.stringify(patientMaster),
dataType: "json",
contentType: "application/json",
traditional: true
});
我有两个不同的模型需要传递到网络 api。这两个样本模型如下
public class Authetication
{
public string appID { get; set; }
}
public class patientRequest
{
public string str1 { get; set; }
}
为了开始工作,我创建了第三个模型,如下所示。
public class patientMaster
{
patientRequest patientRequest;
Authetication Authetication;
}
并传递我按照 jquery 代码创建的数据
var patientMaster = {
patientRequest : { "str1" : "John" },
Authetication : { "appID" : "Rick" }
}
$.ajax({
url: "http://localhost:50112/api/Patient/PostTestNew",
type: "POST",
data: {"": patientMaster}
});
为了抓住这个,我在控制器中创建了以下方法
[HttpPost]
public string PostTestNew(patientMaster patientMaster)
{
return " .. con .. ";
}
我的问题是
每当测试时我得到 patientMaster
对象但我没有得到任何数据 Authetication
对象也没有 patientRequest
对象
我也试过在 jquery 中传递 contenttype:json 但它不起作用
有人可以帮我解决这个问题吗?
你们非常接近。我添加了一个 FromBody 属性并指定了内容类型。我还会使您的 patientMaster
对象中的属性可公开访问。
patientMaster 对象:
public class patientMaster
{
public patientRequest patientRequest { get; set;}
public Authetication Authetication { get; set;}
}
API 控制器:
[HttpPost]
public string PostTestNew([FromBody]PatientMaster patientMaster)
{
return "Hello from API";
}
jQuery代码:
var patientRequest = { "str1": "John" };
var authentication = { "appID": "Rick" };
var patientMaster = {
"PatientRequest": patientRequest,
"Authentication": authentication
};
$.ajax({
url: "http://localhost:50112/api/Patient/PostTestNew",
type: "POST",
data: JSON.stringify(patientMaster),
dataType: "json",
contentType: "application/json",
traditional: true
});