【问题标题】:Add list of entity as parameter添加实体列表作为参数
【发布时间】:2018-02-09 10:33:10
【问题描述】:

是否可以检索实体列表作为 c# odata 中操作的参数?

尝试了以下方法,但它导致整个控制器无法工作:

[HttpPost]
[NhSessionManagement()]
[ODataRoute("BatchUpdate")]
public async Task<IHttpActionResult> BatchUpdate(List<Item> items, bool updateDefaultJSONFile)
{
    return Ok();
}

这是配置:

        {
            var action = builder.EntityType<Item>().Collection.Action("BatchUpdate");

            action.CollectionParameter<Item>("items");
            action.Parameter<bool>("updateDefaultJSONFile");
        }

这就是我发送数据的方式:

$http.post(appConfig.serviceUrl + "api/items/Service.BatchUpdate", { items: itemsToUpdate, updateDefaultJSONFile: true}).success(function (data, status, headers, config) {
    debug("Successfully saved");
}).error(function (data, status, headers, config) {
    debug("Failed to save");
});

在提琴手中:

POST http://192.168.20.108/api/items/Service.BatchUpdate HTTP/1.1
Host: 192.168.20.108
Connection: keep-alive
Content-Length: 83114
Pragma: no-cache
Cache-Control: no-cache
Accept: application/json, text/plain, */*
Origin: http://192.168.20.108
Authorization: Bearer ****
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Content-Type: application/json;charset=UTF-8
Referer: http://192.168.20.108/
Accept-Encoding: gzip, deflate
Accept-Language: sv-SE,sv;q=0.9,en-US;q=0.8,en;q=0.7

{"items":[{"Key":"helpful","Text":"test"}],"updateDefaultJSONFile":false}

【问题讨论】:

    标签: c# asp.net-web-api odata asp.net-web-api-odata


    【解决方案1】:

    将集合参数指定为数组,而不是列表:

    [HttpPost]
    [NhSessionManagement()]
    [ODataRoute("BatchUpdate")]
    public async Task<IHttpActionResult> BatchUpdate(Item[] items, bool updateDefaultJSONFile)
    {
        return Ok();
    }
    

    配置正确,干得好。

    【讨论】:

    • 感谢您的帮助。现在控制器似乎正在工作。但他的行动不是。我收到这些参数的 404 错误,没有任何参数我的调用正在工作,所以它可能与我发送和接收数据的方式不匹配。
    猜你喜欢
    • 2019-01-07
    • 1970-01-01
    • 2021-11-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多