Как я могу проверить, чтобы ввод пользователя был целочисленным только в синтаксисе бритвы в файле cshtml? - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть эта проблема, чтобы узнать, является ли ввод пользователя високосным годом или нет.Тем не менее, я не знаю, как проверить, чтобы входные данные были только положительными целыми числами.Мне нужно исключить тип с плавающей точкой в ​​синтаксисе RAZOR .Кто-нибудь может мне помочь с кодом, пожалуйста?

    @{
        ViewBag.Title = "Index";
     }

    @{
        var leap_year = "";
        var error_mes = "";    
        if (IsPost)
        {
           var yr = Request["year"];
           if (yr.AsInt() < 0) 
           {
              error_mes = "Please Input positive integer";
           } 
           else if ((yr.AsInt()%4 == 0) || (yr.AsInt()%400 == 0))
           {
              leap_year = yr + " is leap year";
           }
           else
           {
              leap_year = yr + " is not leap year";
           }
        }
     }

     <html>
     <head>
        <title>Leap Year</title>

     </head>
     <body>
        <h3>Please input to check for leap year</h3>
        <form method="post">
           <label for="year">Year</label><br />
           <p><input type="text" name="year" /></p>
           <p><input type="submit" value="Check" /></p>
        </form>
        <p>@error_mes @leap_year</p>
     </body>
     </html>

1 Ответ

0 голосов
/ 16 апреля 2019

Платформа ASP.NET Web Pages предоставляет вспомогательный метод IsInt(), который определяет, является ли значение целым числом:

if(Request["year"].IsInt())
{
    if(Request["year"].AsInt() < 0)
    {
       ...blah blah blah
    }
}
else
{
    error_mes = "Please Input integer";
}

Этот метод является оберткой для Int32.TryParse метод.

...