我试图通过 Breeze 发送一个对象作为参数但没有成功。
使用以下代码,我可以发送一个原始类型:
客户:
var query = EntityQuery
.from('account/authenticate')
.withParameters({ loginRequest: "hello" });
服务器:
[BreezeController]
public class AccountController : ApiController
{
[HttpGet]
public LoginResult Authenticate(string loginRequest)
{
// String for loginRequest received successfully
}
}
但是,如果我尝试向上传递一个复杂类型,则参数始终为空:
客户:
var loginRequest = { userName: 'me', password: 'pass' };
var query = EntityQuery
.from('account/authenticate')
.withParameters({ loginRequest: loginRequest });
服务器:
[BreezeController]
public class AccountController : ApiController
{
[HttpGet]
public LoginResult Authenticate(LoginRequest loginRequest)
{
// Object for loginRequest always null
}
}
我相信这部分是因为 Breeze 总是使用 GET 进行查询。POST 可能会正确处理序列化,但我在 Breeze API 中看不到任何强制 POST 的方法。
如果我传递对象的 JSON 字符串表示,我可以在服务器端获取它,但这需要手动反序列化。我意识到我可以通过标准的 WebAPI 调用在 Breeze 之外执行此操作,但我试图让我的所有服务器端调用都通过同一管道运行。
是否有可能做到这一点?