Удаленный атрибут не попадает в метод контроллера действий - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь использовать удаленную проверку атрибутов в Asp.net-core 2.2, но я не использую метод действия внутри контроллера проверки.

Эти сценарии предоставляются

    <script src="~/site/js/jquery.js"></script>
    <script src="~/site/js/jquery.validate.js"></script>
    <script src="~/site/js/jquery.validate.unobtrusive.js"></script>

Валидационный контроллер

    [Authorize]
    public class ValidationController : Controller
    {
        [AcceptVerbs("Get", "Post")]
        public IActionResult ValidateDupliciteName(string name)
        {
            var test = false;

            return Json(test);
        }
    }

ViewModel

    [Remote("ValidateDupliciteName", "Validation")]
    public string name { get; set; }

И вид привязки модели я использую нокаутом.

<input type="text" class="input-validation-error form-control" data-bind="value: @(nameof(Model.name))" />

Я не получаю никаких сообщений об ошибках, когда я устанавливаю точку останова в методе действия, она не попадает в цель. Проблема может заключаться в том, что когда я открываю инструменты разработчика в Chrome, я не вижу ни одного URL-адреса для метода действия контроллера проверки ...

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

Для атрибута удаленной проверки он используется с кодом ниже

<input asp-for="Name" class="form-control" />

будет генерировать похожий HTML во время визуализации представления.

<input class="form-control" type="text" data-val="true" data-val-remote="'Name' is invalid." 
  data-val-remote-additionalfields="*.Name" data-val-remote-url="/Validation/ValidateDupliciteName" 
  id="Name" name="Name" value="">

Для вашего кода он не содержит этот код, и knockout не будет генерировать удаленный связанный HTML-код.

Если вы предпочитаете нокаут, вам нужно реализовать свой собственный запрос с помощью ajax, и вы можете сослаться на Проверка / Удаленная проверка с knockout.js в vb.net mvc

0 голосов
/ 02 июля 2019

Убедитесь, что у вас есть элемент формы в вашем представлении. Имя свойства должно быть внутри элемента формы. Вы также должны придерживаться следующей части:

 @section Scripts {        
        @{await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...