Tôi đang cố gắng gửi một đối tượng như một tham số thông qua Breeze mà không thành công.Truyền một đối tượng làm tham số cho hành động điều khiển Breeze
Sử dụng đoạn mã sau tôi có thể gửi một loại nguyên thủy:
Chủ đầu tư:
var query = EntityQuery
.from('account/authenticate')
.withParameters({ loginRequest: "hello" });
Server:
[BreezeController]
public class AccountController : ApiController
{
[HttpGet]
public LoginResult Authenticate(string loginRequest)
{
// String for loginRequest received successfully
}
}
Tuy nhiên, nếu tôi cố gắng và vượt qua một loại phức tạp lên, thông số luôn là rỗng:
Khách hàng:
var loginRequest = { userName: 'me', password: 'pass' };
var query = EntityQuery
.from('account/authenticate')
.withParameters({ loginRequest: loginRequest });
Server:
[BreezeController]
public class AccountController : ApiController
{
[HttpGet]
public LoginResult Authenticate(LoginRequest loginRequest)
{
// Object for loginRequest always null
}
}
Tôi tin rằng đây là một phần vì Breeze luôn luôn sử dụng một GET cho các truy vấn. POST có thể xử lý tuần tự một cách chính xác, nhưng tôi không thể thấy bất kỳ cách nào trong API Breeze để buộc POST.
Nếu tôi bỏ qua một biểu diễn chuỗi JSON của đối tượng, tôi có thể nhặt nó lên phía máy chủ, nhưng điều này yêu cầu deserialization thủ công. Tôi nhận ra rằng tôi có thể làm điều này bên ngoài Breeze với một cuộc gọi WebAPI chuẩn, nhưng tôi đang cố gắng giữ cho tất cả các cuộc gọi phía máy chủ của tôi chạy qua cùng một đường ống.
Có thể thực hiện việc này không?
Xin chào Jay, tôi đã thử điều này và không có niềm vui - bạn nhận được lỗi Breeze "Tham số 'tham số phải là' đối tượng '". –