Передайте 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,

Другие вопросы по тегам