Я следовал документации здесь и здесь , но атрибуты проверки, похоже, не работают. У меня есть это в моем RModel:
[RegularExpression(@"^[A-Z]+[a-zA-Z'\s]*$")]
[Required]
[StringLength(10)]
public string FirstName { get; set; }
[Required]
[EmailAddress]
public string Email { get; set; }
И это на мой взгляд:
@using (Html.BeginForm("Index", "RHome", FormMethod.Post))
{
<div class="field form-group col-sm-4">
<input type="text" id="FirstName" placeholder=" ">
<label for="FirstName">First Name</label>
<span asp-validation-for="RModel.FirstName"></span>
</div>
<div class="field form-group col-sm-8">
<input id="Email" placeholder=" ">
<label for="Email">Email</label>
<span asp-validation-for="RModel.Email"></span>
</div>
. . .
}
Я использую ViewModel для загрузки в несколько моделей. Другие модели очень похожи на RModel. Я не знаю, повлияет ли это на что-нибудь, но я думаю, что это может.
public class ViewModelR
{
public RModel RModel { get; set; }
public KnowledgeModel KnowledgeModel { get; set; }
}
Я просто хочу провести проверку на стороне сервера и клиента, чтобы предотвратить инъекцию и неправильные вводы и прочее. Как мне это сделать?
ОБНОВЛЕНИЕ: я добавил в свое представление, и теперь, когда я нажимаю кнопку Отправить, не заполняя любой ввод, я, кажется, получаю сообщение о том, что [required]
работает.
The Email: field is required.
The First Name: field is required.
Это здорово, но мне нужно, чтобы все остальные проверки работали, чтобы я мог предотвратить неправильные значения?