Я хочу, чтобы пользовательское действие было добавлено в мой контроллер OData для добавления объекта. Я могу сделать это в стандартном методе Post, поставляемом в контроллере OData, но у меня есть собственный код, который будет перезаписан, когда я обновляю контроллер из базы данных, если я добавлю ассоциацию.Параметр Null в OData Custom Action
Вот пользовательский метод Я добавил
[HttpPost]
public IHttpActionResult CreateValidCombination(ValidCombination validCombination)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
return Ok();
}
Заголовок запроса совпадает со стандартным методом поста
POST http://localhost:20152/Admin/odata/ValidCombinations/fn.CreateValidCombination HTTP/1.1
Accept: */*
Content-Type: application/json
Referer: http://localhost:20152/Admin/index.html
Accept-Language: en-CA,en;q=0.5
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Connection: Keep-Alive
Content-Length: 284
DNT: 1
Host: localhost:20152
Pragma: no-cache
Действия настроенным в WebApiConfig.cs, как
builder.EntityType<ValidCombination>().Collection
.Action("CreateValidCombination")
.Returns<IHttpActionResult>();
Проблема заключается в том, что стандартный метод OData Contoller Post получает параметр типа " ValidCombination ", метод customer получает его как null.
Я проверил заголовки и тело запроса в скрипаче и то же самое в обоих случаях. Я даже попытался поставить [FromBody] перед параметром, но безрезультатно. Я пытаюсь получить значение в параметре для моего настраиваемого метода.
С кем сталкивался кто-либо раньше. Есть ли способ, по которому я могу отлаживать, почему параметр не десериализуется должным образом, даже если запрос и тело одинаковы для обоих методов?