Asp.net 如何将两个对象传递给web api?
以下是我的WebAPI POST方法,它需要Asp.net 如何将两个对象传递给web api?,asp.net,angularjs,asp.net-mvc,asp.net-web-api,Asp.net,Angularjs,Asp.net Mvc,Asp.net Web Api,以下是我的WebAPI POST方法,它需要BookingDetail和bookingVisite对象: [HttpPost] [ValidateUserSession] public JsonResult CheckBooking(BookingDetail BookingDetail, BookingVenue objBV) { try { if (BookingDetail != null &&
BookingDetail
和bookingVisite
对象:
[HttpPost]
[ValidateUserSession]
public JsonResult CheckBooking(BookingDetail BookingDetail, BookingVenue objBV)
{
try
{
if (BookingDetail != null && objBV != null)
{
bool result = Ibook.checkBookingAvailability(BookingDetail, objBV);
if (result == false)
{
return Json("NotAvailable");
}
else
{
return Json("Available");
}
}
else
{
return Json("Available");
}
}
}
角度代码,我从UI中获取值,并发布传递这两个对象的帖子:
this.checkbookingavailability = function (Book) {
var BookingVenueObj = {
EventTypeID: Book.EventSelected,
VenueID: Book.Venueselected,
GuestCount: Book.NoofGuest,
};
var BookingDetailObj = {
BookingDate: Book.BookingDate
};
var response =
$http({
method: "POST",
url: "/Booking/CheckBooking/",
headers: {
'RequestVerificationToken': $cookies.get('EventChannel')
},
data: { BookingDetail: BookingDetailObj, BookingVenue: BookingVenueObj }
});
return response;
}
问题是在我的WebAPI代码中,两个对象都为null,您需要通过调用
JSON.stringify
over object将要发送到服务器的JSON对象序列化
var response =
$http({
method: "POST",
url: "/Booking/CheckBooking/",
headers: {
'RequestVerificationToken': $cookies.get('EventChannel')
},
data: JSON.stringify({
BookingDetail: BookingDetailObj,
BookingVenue: BookingVenueObj
})
});
return response;
您只能在主体中传递一个对象,因此我建议您为包含BookingDetail
和bookingvention
的对象创建一个新的DTO“BookingDto”,并将WebAPI的签名更改为:
[HttpPost]
[ValidateUserSession]
public JsonResult CheckBooking([FromBody]BookingDto bookingObj)
亲爱的Pankaj提到,你需要在JavaScript中<代码>序列化< /代码>你的数据对象用<代码> StrugTime/Cuff>函数,还必须考虑到这个HTTP请求包含<代码>应用程序/JSON<代码>内容。所有这些都可以在这里显示:
var response =
$http({
method: "POST",
url: "/Booking/CheckBooking/",
headers: {
'RequestVerificationToken': $cookies.get('EventChannel'),
'Content-Type' : 'application/json'
},
data: JSON.stringify({
BookingDetail: BookingDetailObj,
BookingVenue: BookingVenueObj
})
});
return response;
不能将两个对象传递给web api。您可以这样做public JsonResult CheckBooking([frombody]动态值)
@Div:我们可以在web api中传递两个对象。@ismail baig@Div:链接似乎是从url传递一些数据和从body传递另一些数据的问题,这显然是不正确的方法。但这里的问题是从body(典型的POST)传递对象,您也可以使用JObject来实现这一点-