Получение "Словарь параметров содержит пустую запись для параметра 'ID' не обнуляемого типа 'System.Int32' для метода X" в C # - PullRequest
0 голосов
/ 31 октября 2019

Когда я запускаю эту команду из моего представления в exceptions.html

 <tr ng-repeat="scbEXCEPtions in vm.scbExpData">
     <td>
       <button class="btn btn-alert btn-xs" ng-click="vm.DelExceptionObjRef(scbEXCEPtions.REF_ID)">
          Remove
      </button>
    </td>
 </tr>

и в файле моего контроллера exception.js, это метод, который я вызываю

  vm.DelExceptionObjRef = function (refno) {
        vm.viewModelHelper.apiGet('api/scbexception/RevertExceptionById/' + refno, null,
        function (result) {
            vm.prepareData(result.data);
        },
        function (result) {
            toastr.error(result.data, 'Fintrak');
        }, null);
   }

, который генерируетпри нажатии на этот URL, даже после установки точки останова в файле apicontroller, я получаю эту ошибку:

http://localhost:6861/api/scbEXCEPtion/RevertExceptionById/10000011943

, и у меня есть метод в моем контроллере Api {ScbExceptionApiController}, который получает функцию и методздесь ...

    [HttpGet]
    [Route("RevertExceptionById/{ID}")]
    public HttpResponseMessage RevertExceptionById(HttpRequestMessage request, int ID){
        return GetHttpResponse(request, () => {
            HttpResponseMessage response = null;
            ScbException[] scbexception = _APPModuleService.RevertExceptionById(ID);
            response = request.CreateResponse<ScbException[]>(HttpStatusCode.OK, scbexception);
            return response;
        });
    }

но после выполнения я получаю эту ошибку, и я не понимаю, почему

{"Message":"The request is invalid.","MessageDetail":"The parameters dictionary contains a null entry for parameter 'ID' of non-nullable type 'System.Int32' for method 'System.Net.Http.HttpResponseMessage RevertExceptionById(System.Net.Http.HttpRequestMessage, Int32)' in 'Fintrak.Presentation.WebClient.API.ScbExceptionApiController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter."}

1 Ответ

1 голос
/ 31 октября 2019

RevertExceptionById(HttpRequestMessage request, int ID) ожидает ID как int, что является 32-разрядным целым числом.

Максимальное значение 32-разрядного целого числа равно 2147483647,Вы передаете 10000011943 в качестве идентификатора, который превышает это максимальное значение.

Я подозреваю, что это является причиной сбоя привязки параметра для ID с данным исключением.

Возможные решения: использовать более низкие идентификаторы или использовать string вместо int для идентификатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...