В WEB API три основных типа передаваемых параметров: обьект, одиночный параметр и массив.
Ниже представлен пример кода передачи параметров из jQuery.ajax .
WebApiConfig.cs
Можно передать как обьект с 1 полем
Ниже представлен пример кода передачи параметров из jQuery.ajax .
Передача объекта
// adding material to user cart methodfunction addMaterialToCart(approvementId, salePackageId, orderId) { jQuery.ajax({ url: '/api/CartService/Add/', type: "POST", data: { ApprovementId: approvementId, PackageId: salePackageId, OrderId: orderId}, dataType: "json", success: function (data, textStatus, jqXHR) { alert("ок"); }, error: function (jqXHR, textStatus, errorThrown) { alert("Ошибка: " ); } }); }
// POST api/CartService/Add/ [System.Web.Http.HttpPost] [System.Web.Http.ActionName("Add")] public int Add(CartOrder cartOrder) { return AddMaterialToCart(cartOrder); }
public class CartOrder { // a complex object public string ApprovementId { get; set; } public string PackageId { get; set; } public string OrderId { get; set; } public string ItemsCount { get; set; } }
Передача 1 параметра
Самый простой способ передача как части url// Pushing or adding material to user cart method function getMaterialCartCount(approvementId) { jQuery.ajax({ url: '/api/CartService/GetCartRowsQuantity/' + approvementId, type: "POST", dataType: "json",
success: function (data, textStatus, jqXHR) { alert("ок"); }, error: function (jqXHR, textStatus, errorThrown) { alert("Ошибка: " ); }}); }
// POST api/GetCartRowsQuantity [System.Web.Http.HttpPost] [System.Web.Http.ActionName("GetCartRowsQuantity")] public int GetCartRowsQuantity([FromUri]string id) { var guid = (id ?? string.Empty).ToGuidNullable(); if (guid == null) { throw new Exception("Не задан ИД элемента"); } return 5; }
WebApiConfig.cs
config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } );
Можно передать как обьект с 1 полем
jQuery.ajax({ url: '/api/CartService/Delete/', type: 'POST', dataType: 'json', data: { Id: item.ID },success: function (data, textStatus, jqXHR) { alert("ок"); }, error: function (jqXHR, textStatus, errorThrown) { alert("Ошибка: " ); }});
Передача массива
self.removeCartItemSList = function () { var idsArray = new Array(); ko.utils.arrayForEach(self.CartItems(), function (data) { var f = data.Selected(); if (f) { idsArray.push(data.ID); } }); jQuery.ajax({ url: '/api/CartService/DeleteList/', type: 'POST', dataType: 'json', traditional: true, contentType: 'application/json; charset=utf-8', data: JSON.stringify(idsArray),success: function (data, textStatus, jqXHR) { alert("ок"); }, error: function (jqXHR, textStatus, errorThrown) { alert("Ошибка: " ); }}); };
// POST api/CartService/Delete/ [System.Web.Http.HttpPost] [System.Web.Http.ActionName("DeleteList")] public void DeleteList(List<string> ids) { var guidList = new List<Guid>(); }
Комментариев нет:
Отправить комментарий