Передайте Nullable Int в Request.Form[] в MVC
Я отправил форму в View
где ценовые поля могут быть нулевыми. Я получаю ценности в действии с Request.Form[]
:
int? min = int.Parse(Request.Form["min"])
но я получаю Exception, когда поле имеет значение null, потому что null не может быть проанализирован в int.
Что-нибудь еще попробовать?
3 ответа
Решение
Проверьте, является ли значение нулевым перед анализом
int? min = null;
if (Request.Form["min"] != null)
{
min = int.Parse(Request.Form["min"])
}
Сначала вам нужно будет преобразовать его в целое число, а затем выполнить проверку, чтобы определить, должно ли оно быть NULL или нет (так как я полагаю, что ваша программа полагается на это).
int i = 0;
int.TryParse(Convert.ToString(Request.Form["min"]), out i); // Convert textfield value
int? min = (i > 0 ? (int?)i : null); // Determine whether we should take the original value or NULL
Использование int.TryParse
как показано:
int num1=0;
if(int.TryParse(Convert.ToString(Request.Form["min"]), out num1))
{....}
else{....}
В приведенном выше коде num1
будет иметь требуемый вывод, если преобразование не удалось тогда num1
будет иметь значение 0
в противном случае значение Request.Form["min"]
будет там в num1
,