Ненавязчивые проверки MVC5 не работают - PullRequest
0 голосов
/ 27 мая 2018

Я использую Entity Framework с первым подходом к базе данных.

Я создал отдельный класс для проверок.

[MetadataType(typeof(RoleMetaData))]
    public partial class Role
    {

    }

    class RoleMetaData
    {
        [Required(ErrorMessage = "Please enter role name")]
        public string Name { get; set; }
    }

и мою HTML-форму:

@using (Html.BeginForm("Create", "Role", FormMethod.Post, new {  @class = "submitform" }))
{
 @Html.TextBoxFor(x => x.Name, new { @class="form-control" })
<input type="submit" class="btn btn-success width-150" value="Save" />
}

Но HTML-рендеринг в браузер без каких-либо атрибутов data- *, таких как:

<input class="form-control" id="Name" name="Name"  type="text" value="">

Мне интересно, почему он не отображает атрибуты data- *.

Пожалуйста, сообщите мне, что я делаю неправильно.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Я выяснил, в чем проблема, пространство имен моего класса проверки отличается от пространства имен, в котором существует объект данных.

0 голосов
/ 28 мая 2018

Вам необходимо использовать ValidationMessageFor для отображения атрибутов data- * для ненавязчивой проверки.Используйте ValidationMessageFor, как показано ниже:

 @using (Html.BeginForm("Create", "Role", FormMethod.Post, new {  @class = "submitform" }))
    {
     @Html.TextBoxFor(x => x.Name, new { @class="form-control" })
     @Html.ValidationMessageFor(x => x.Name, "", new { @class = "text-danger" })
    <input type="submit" class="btn btn-success width-150" value="Save" />
    }

и убедитесь, что проверка подлинности на стороне клиента включена в web.config, как показано ниже:

<configuration>
  <appSettings>
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...