gpt4 book ai didi

asp.net-web-api - 将对象作为参数传递给 Breeze Controller 操作

转载 作者:行者123 更新时间:2023-12-04 07:18:31 25 4
gpt4 key购买 nike

我试图通过 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 之外执行此操作,但我试图让所有服务器端调用都通过同一管道运行。

是否有可能做到这一点?

最佳答案

您可能缺少 [FromUri] 属性。任何时候我试图传递一个更复杂的对象或一组参数时,一切都会返回 null,直到我添加了该属性。

[BreezeController]
public class AccountController : ApiController
{
[HttpGet]
public LoginResult Authenticate([FromUri] LoginRequest loginRequest)
{
// Object for loginRequest always null
}
}

关于asp.net-web-api - 将对象作为参数传递给 Breeze Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15815319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com