Проверка аннотации данных с использованием Jquery, без отображения сообщения об ошибке - PullRequest
1 голос
/ 14 октября 2019

У меня есть свойство модели, значение которого может требоваться или не требоваться в представлении на основе значения другого свойства. Я реализовал его в следующем виде:

<input @Html.Raw(Model.IsRequired ? "required data-val=true' data-val-required='" + Model.Name + " selection is required.'" : "") asp-for="Name" class="form-control" />
if (Model.IsRequired)
{
    <span asp-validation-for="Name" class="text-danger"></span>
}

Как указано на основе значения поля Обязательное, проверка применяется или не применяется.

Мне также пришлось добавить этот битcode.

$("#btnSubmit").on("click", function () {
    $("#form").submit();
});

Код отлично работает при проверке кода, однако сообщение не отображается. Чего мне не хватает?

Я также пытался использовать этот ответ и изменил свой интервал проверки на приведенный ниже, но он тоже не сработал.

<span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>

1 Ответ

2 голосов
/ 15 октября 2019

Если вы не хотите добавлять аннотации данных для проверки. Вот простой обходной путь, подобный приведенному ниже:

1.Модель:

public class TestModel
{
    public string Name { get; set; }
    public bool IsRequired { get; set; }
}

2.Просмотр (необходимо изменитьваш @Html.Raw() и убедитесь, что вы добавили @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}):

@model TestModel
<form id="form">
    <input @Html.Raw(Model.IsRequired ? "data-val='true' data-val-required='selection is required.'" : "") id="Name" name="Name" type="text" class="input-validation-error" />
    @if (Model.IsRequired)
    {
        <span asp-validation-for="Name" class="text-danger"></span>
    }

    <input id="btnSubmit" type="submit" />
</form>

@section Scripts{
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

3.Контроллер:

public IActionResult Index()
{
    var test = new TestModel() { IsRequired = true };
    return View(test);
}

4.Результат: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...