0 голосов
спросил от в категории ASPNETMVC
Проблема в том, что строка с пробелами в ней не является допустимым значением Int64 .

Даже если культура вашего сервера настроена на использование пространства в качестве разделителя тысяч, код, который преобразует опубликованное значение в Int64 , не позволит этого.

</Это уже давно известная проблема. Обходной путь заключается в использовании настраиваемого связующего объекта: <br>
using System; using System.Globalization; using System.Web.Mvc; public class Int64ModelBinder : IModelBinder  {     public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)      {         ValueProviderResult valueResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);         ModelState modelState = new ModelState { Value = valueResult };                  object result = null;                  long int64Value;         if (long.TryParse(valueResult.AttemptedValue, NumberStyles.Integer | NumberStyles.AllowThousands, valueResult.Culture, out int64Value))         {             result = int64Value;         }         else         {             modelState.Errors.Add($"'{valueResult.AttemptedValue}' is not a valid number.");         }                  bindingContext.ModelState.Add(bindingContext.ModelName, modelState);         return result;     } }
# [#^ #]
using System; using System.Globalization; using System.Web.Mvc; public class Int64ModelBinder : IModelBinder  {     public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)      {         ValueProviderResult valueResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);         ModelState modelState = new ModelState { Value = valueResult };                  object result = null;                  long int64Value;         if (long.TryParse(valueResult.AttemptedValue, NumberStyles.Integer | NumberStyles.AllowThousands, valueResult.Culture, out int64Value))         {             result = int64Value;         }         else         {             modelState.Errors.Add($"'{valueResult.AttemptedValue}' is not a valid number.");         }                  bindingContext.ModelState.Add(bindingContext.ModelName, modelState);         return result;     } }

Пожалуйста, войдите или зарегистрируйтесь чтобы ответить на этот вопрос.

Категории

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

Связанных вопросов не найдено

...