Используйте asp-validation-for без привязки к свойству модели
В прошлом я всегда использовал следующий код, чтобы прояснить что-то глобально, например, с помощью формы входа в систему, когда имя пользователя или пароль неверны. Я не хочу, чтобы это сообщение об ошибке связывалось с определенным свойством модели, таким как Имя пользователя или Пароль, а только с пользовательским ValidationMessage.
контроллер:
ModelState.AddModelError("Combination", "Password or username not correct.");
Посмотреть:
@Html.ValidationMessage("Combination")
В новых примерах, созданных с помощью VS17, он не использует @Html.ValidationMessageFor()
а также @Html.ValidationMessage()
больше, но тем легче<span asp-validation-for="Username" class="text-danger"></span>
Теперь возникает проблема, что я не могу найти ничего подобного asp-validation="Combination"
это заменяет @Html.ValidationMessage()
,
Это совсем другое, я что-то упустил, или мне нужно использовать старый @Html.ValidationMessage()
как альтернатива?
1 ответ
Если вы хотите установить "глобальную" ошибку проверки, вы можете просто использовать пустую строку, чтобы указать, что ошибка не относится к определенному свойству:
ModelState.AddModelError(string.Empty, "Password or username not correct.");
С этим на месте, вы можете использовать asp-validation-summary
Tag-Helper для создания вашего сообщения (или сообщения - вы можете позвонить AddModelError
несколько раз с string.Empty
):
<div asp-validation-summary="ModelOnly"></div>
Указав ModelOnly
только те сообщения проверки, которые вы добавили, используя string.Empty
будет показано.