ValidationMessageFor не показывает сообщение об ошибке MVC - PullRequest
0 голосов
/ 01 мая 2018

Попытка получить правильный номер мобильного телефона в текстовое поле. Я настроил свою модель, используя это Учебное пособие . Но я использую bootstrap, по этой ссылке Css по-другому. Моя проблема даже в том, что я настроил сообщение validationError, это не видно на мой взгляд. Как я могу это сделать? Это моя модель

  public partial class sign_up
{
    public int id { get; set; }
    public string name { get; set; }
    public string surname { get; set; }
    public string password { get; set; }
    public string e_mail { get; set; }
    public string addrres { get; set; }


    [Display(Name = "Mobile Phone :")]
    [Required(ErrorMessage = "Mobile Number is required.")]
    [RegularExpression(@"^([0-9]{10})$", ErrorMessage = "Invalid Mobile Number.")]
    public string phone { get; set; }

}

коды MyView

 <div class=" form-group">
        <div class="col-md-6">

            @Html.LabelFor(m => m.phone)
            @Html.EditorFor(m => m.phone, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(m => m.phone,"", new { htmlAttributes= new { @style = "color:red" } })


        </div>
    </div>

а также я попробовал изменение Site.css, но оно не сработало, я не нашел свою ошибку, где она?

Полный просмотр

@model Ciftlikten.Models.sign_up





@using (Html.BeginForm("Sign_up", "SignUp", FormMethod.Post))
{
    <div class="container">
    <div class="form-group">
        <div class="col-md-6">
            <label>Name: </label>
            @Html.EditorFor(m => m.name, new { htmlAttributes = new { @class = "form-control" } })

        </div>
    </div>

    <div class="form-group">
        <div class="col-md-6">
            <label>Surname :</label>
            @Html.EditorFor(m => m.surname, new { htmlAttributes = new { @class = "form-control" } })

        </div>
    </div>

    <div class=" form-group">
        <div class="col-md-6">
            <label>E-Mail :</label>
            @Html.EditorFor(m => m.e_mail, new { htmlAttributes = new { @class = "form-control" } })

        </div>
    </div>

    <div class=" form-group">
        <div class="col-md-6">
            <label>Password :</label>
            @Html.PasswordFor(m => m.password, new { htmlAttributes = new { @class = "form-control" } })

        </div>
    </div>

    <div class=" form-group">
        <div class="col-md-6">
            <label>Addrres :</label>
            @Html.EditorFor(m => m.addrres, new { htmlAttributes = new { @class = "form-control" } })

        </div>
    </div>


    <div class=" form-group">
        <div class="col-md-6">

            @Html.LabelFor(m => m.phone)
            @Html.EditorFor(m => m.phone, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(m => m.phone,"", new { htmlAttributes= new { @style = "color:red" } })


        </div>
    </div>



<div class="container col-lg-12">
    <div class="container">
        <div class="col-lg-12">
            <input class="btn  btn-block btn-success" type="submit" />
        </div>
    </div>
</div>


}

1 Ответ

0 голосов
/ 01 мая 2018
  • Указанная вами ссылка в основном относится к номеру телефона REGEX, а метод POST не реализован правильно.

  • Также в вашем Razor View отсутствуют скрипты Jquery Validate. Только если сценарии проверки jquery добавлены, проверка происходит на стороне клиента. Иначе это всегда проверяется на стороне сервера.

  • Добавьте раздел сценариев в конце вашего Razor View. Я предполагаю, что jquery добавлен в ваш _Layout.cshtml и есть @RenderSection("scripts", required: false) непосредственно перед тегом конца тела.

    @*Add this at end of razor view*@
     @section Scripts {
       @Scripts.Render("~/bundles/jqueryval")
    }
    
    [HttpPost, ValidateAntiForgeryToken]
    public ActionResult Sign_Up(Sign_up sign_upmodel)
    {
        if (ModelState.IsValid)
        {
            // Your logic here. Save to DB etc..
            return RedirectToAction("Index"); // return to some page.
        }
        // Model Validation Failed so return the same Get View.
        return View(sign_upmodel);
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...