小编Chr*_*rns的帖子

将对象作为参数传递给Breeze控制器操作

我试图通过Breeze发送一个对象作为参数而没有成功.

使用以下代码我可以发送一个基本类型:

客户:

var query = EntityQuery
    .from('account/authenticate')
    .withParameters({ loginRequest: "hello" });
Run Code Online (Sandbox Code Playgroud)

服务器:

[BreezeController]
public class AccountController : ApiController
{
    [HttpGet]
    public LoginResult Authenticate(string loginRequest)
    {
        // String for loginRequest received successfully
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试传递复杂类型,则param始终为null:

客户:

var loginRequest = { userName: 'me', password: 'pass' };

var query = EntityQuery
    .from('account/authenticate')
    .withParameters({ loginRequest: loginRequest });
Run Code Online (Sandbox Code Playgroud)

服务器:

[BreezeController]
public class AccountController : ApiController
{
    [HttpGet]
    public LoginResult Authenticate(LoginRequest loginRequest)
    {
        // Object for loginRequest always null
    }
}
Run Code Online (Sandbox Code Playgroud)

我相信这部分是因为Breeze总是使用GET进行查询.POST可能正确处理序列化,但我无法在Breeze API中看到任何强制POST的方法.

如果我传递了对象的JSON字符串表示,我可以在服务器端获取它,但这需要手动反序列化.我意识到我可以通过标准的WebAPI调用在Breeze之外执行此操作,但我正在尝试保持所有服务器端调用都在同一个管道中运行.

是否有可能做到这一点?

asp.net-web-api breeze

6
推荐指数
1
解决办法
2394
查看次数

标签 统计

asp.net-web-api ×1

breeze ×1