asp.net - 如何将两个对象传递给Web api?

标签 asp.net angularjs asp.net-mvc asp.net-web-api

这是我的 WebAPI POST 方法,它需要 BookingDetailBookingVenue 对象:

    [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 获取值并发布传递这两个对象的 Angular 代码:

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

最佳答案

您只能在正文中传递一个对象,因此我建议您为包含 BookingDetail 的对象创建一个新的 DTO“BookingDto”和 BookingVenue 作为成员,并将您的 WebAPI 签名更改为:

[HttpPost]
[ValidateUserSession]
public JsonResult CheckBooking([FromBody]BookingDto bookingObj)

关于asp.net - 如何将两个对象传递给Web api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38940746/

相关文章:

asp.net - 加密 API 调用如何工作

ajax - 在 angular.js 中的 Controller 之间共享变量

c# - ASP.Net Async MVC Controller 功能导致 Razor View Engine 错误

javascript - 在 ASP.NET Web 窗体中缩小和捆绑 CSS 时出现 "403 - Forbidden: Access is denied"错误

AngularJS 复选框过滤器

angularjs - 如何从 AngularJS 指令设置 native 属性?

c# - 授权(角色 ="Admin")不起作用

javascript - 创建 MVC 格式的动态元素

jquery - 处理带有多条记录的 asp.net core 表单提交中的多选列表框值

python - 使用 Python mechanize 通过登录屏幕