использовать RemoteAttribute в виде модели для редактирования и создания действия - PullRequest
1 голос
/ 10 июня 2019

Я использую RemoteAttribute в моем виде для проверки мгновенно, если имя пользователя существует.

[Remote("ValidUsername","UsersManagement",ErrorMessage ="this usernaem is duplicate")]
 public string Username { get; set; }

Эта идея полезна при вставке новой записи, но предотвращает редактирование обновления. потому что usernaem существует. Каково решение этого предложения?

1 Ответ

1 голос
/ 11 июня 2019

Вариант 1 - Использовать дополнительные поля:

Вы можете использовать аргумент AdditionalFields для вашего атрибута удаленной проверки в вашей модели и объединить его со скрытым полем в вашем представлении.

В вашем классе модели:

[Remote("ValidUsername", "Home", ErrorMessage = "this usernaem is duplicate", AdditionalFields = "PageType")]
public string Username { get; set; }

На странице редактирования / создания добавьте скрытое поле внутри той же формы, что и проверяемое вами поле:

<label asp-for="Username">Username</label>
<input asp-for="Username" />
<span asp-validation-for="Username"></span>
<input type="hidden" name="PageType" value="Edit" />

Затем при проверке на стороне сервера вы можете получить дополнительное значение (редактировать / создать) и проверить его на основании этого, если оно равно edit, просто пропустите проверку:

[AcceptVerbs("Get", "Post")]
public IActionResult ValidUsername(string Username, string PageType)
{
    if ("Edit".Equals(PageType))
    {
        return Json(true);
    }
    if (Username.Equals("21"))
    {


        return Json(false);
    }

    return Json(true);
}

Вариант 2 - использовать другую модель просмотра

Вы также можете использовать другую модель представления при создании и редактировании страниц.

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