Здесь я пытаюсь проверить наличие имени сотрудника при создании нового сотрудника. При создании пользователя, если уже введенное имя сотрудника уже доступно, это таблица, которую он должен показать уже существующий, и если он не показывает сообщение о доступности.
Вот мой Служащий модель класса
Как проверить имя уже имеющееся
[Table("tblEmployee")]
public class Employee
{
public int EmployeeID { get; set; }
[Required(ErrorMessage ="Name Cannot Be Empty")]
public string Name { get; set; }
[Required(ErrorMessage = "Name Cannot Be Empty")]
public string Gender { get; set; }
[Required(ErrorMessage = "Name Cannot Be Empty")]
public string City { get; set; }
}
Ниже приведен метод создания В EmployeeController
[HttpPost]
public ActionResult Create(Employee employee)
{
if (ModelState.IsValid)
{
if (employee.Name!=employee.Name)
{
db.Employees.Add(employee);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
ViewBag.errorMessage = "Name Already Available";
return (ViewBag.errorMessage);
}
}
else
{
return View("Create");
}
}
Ниже приведен Create.cshtml
@model Practise.Models.Employee
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Employee</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
</div>
@ViewBag.errorMessage
</div>
<div class="form-group">
@Html.LabelFor(model => model.Gender, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Gender, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Gender, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.City, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.City, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.City, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
'employee.Name! = Employee.Name' почему не мое имя равно мое имя? –
В действии 'POST' вы должны добавить код строки, чтобы все сотрудники нашли их с помощью' employee.Name'. Если результат «null», вы можете добавить его в таблицу. Кроме того, как сказал @ TânNguyễn, «employee.Name! = Employee.Name», вероятно, самая бесполезная вещь, которую нужно делать, обратите внимание –
Большинство работодателей, рано или поздно, поймут, что многие люди в реальном мире могут иметь одинаковые имена , Использование имени сотрудника как уникального ключа обычно не работает (сотрудники склонны жаловаться, если вы вынуждаете их менять свои имена). Кроме того, вам нужно подумать о том, что произойдет, если два человека представят в одно и то же время. Они оба подчиняются. Обе проверки проходят. Создаются новые записи. О, Боже! По крайней мере *, вы должны обеспечить уникальность на уровне базы данных, и вам нужно написать код, чтобы справиться с нарушением уникальности. –