Я пытаюсь реализовать аннотацию данных. Я создал модель представления с именем RegisterViewModel со следующими аннотациями данных.
namespace CSBSTest.ViewModel{public class RegisterViewModel
{
[Required(ErrorMessage = "Filed is required")]
public string Name { get; set; }
[Required(ErrorMessage ="Filed is required")]
[StringLength(9,ErrorMessage ="The Registeration number is not valid")]
[RegularExpression("BCS15[1-9][1-9][1-9]",ErrorMessage ="The CUST reg number is not valid")]
public string RegNo { get; set; }
[Required(ErrorMessage = "Filed is required")]
[EmailAddress]
public string Email { get; set; }
[Required(ErrorMessage = "Filed is required")]
[MaxLength(11)]
public string Phone { get; set; }
[Required]
[MinLength(6,ErrorMessage ="Minimun length must be 6 charccters")]
public string Password { get; set; }
[Required]
[Compare("Password")]
public string ConfirmPassword { get; set; }
}
}
Затем я создал форму для RegisterViewModel, как показано ниже:
@model CSBSTest.ViewModel.RegisterViewModel@{
ViewBag.Title = "SignupForm";
Layout = "~/Views/Shared/_NavBar.cshtml";}
<head>
<link href="~/Content/Site.css" rel="stylesheet" /></head>
<h2 id="head">
Let's get Started
</h2>
<form action="~/Home/SignUp" method="post" style="padding:70px">
<div class="form-row">
<div class="form-group col-md-3">
<label for="inputEmail4">Full Name</label>
<input type="text" class="form-control" id="inputEmail4" placeholder="Muhammad Ali" @Html.TextBoxFor(x => x.Name)
@Html.ValidationMessageFor(x => x.Name)
</div>
<div class="form-group col-md-3">
<label for="inputPassword4">Email</label>
<input type="email" class="form-control" id="inputPassword4" placeholder="EaF@gmail.com" @Html.TextBoxFor(x => x.Email)
@Html.ValidationMessageFor(x => x.Email)
</div>
</div>
<div class="form-row">
<div class="form-group col-md-3">
<label for="inputEmail4">Password</label>
<input type="password" class="form-control" @Html.TextBoxFor(x => x.Password)
@Html.ValidationMessageFor(x => x.Password)
</div>
<div class="form-group col-md-3">
<label for="inputAddress">Confirm Password</label>
<input type="password" class="form-control" id="inputAddress" @Html.TextBoxFor(x => x.ConfirmPassword)
@Html.ValidationMessageFor(x => x.ConfirmPassword)
</div>
</div>
<div class="form-row">
<div class="form-group col-md-3">
<label for="inputAddress2">Cust Reg No</label>
<input type="datetime" class="form-control" id="inputAddress2" placeholder="20 May 1996" @Html.TextBoxFor(x => x.RegNo)
@Html.ValidationMessageFor(x => x.RegNo)
</div>
<div class="form-group col-md-3">
<label for="inputAddress2">Phone Number</label>
<input type="number" class="form-control" id="inputAddress2" placeholder="+92-3245009538" @Html.TextBoxFor(x => x.Phone)
@Html.ValidationMessageFor(x => x.Phone)
</div>
</div>
<div class="form-row">
<div class="form-group col-md-3">
@Html.Label("Dept", "Select Department")
@Html.DropDownList("Department", new SelectList(new[] { "IT", "CS" }), new { @class = "form-control" })
</div>
</div>
<br />
<button id="bt" type="submit" class="btn btn-primary">Register</button>
</form>
когда я отправляю форму, она отправляется, даже если ни одно поле не заполняется без отображения сообщений с аннотациями или это не препятствует отправке пустой формы. Я пытался добавить валидированные и беспрепятственные библиотеки в голову, но это все равно не сработало.
Любая помощь высоко ценится. Спасибо заранее