Доступность имени пользователя и вставка нового пользователя
Я вставляю полное имя в таблицу, используя Entity Framework.
Перед вставкой хочу проверить, вставлена ли уже запись.
Вот мой вид модели, модели и действия
public class VMUsers
{
[Key]
[Column("tblUsers.Id")]
public int Id { get; set; }
public MVCLearning.Models.Users InsertUser { get; set; }
public MVCLearning.Models.UserDetails InsertUserDetails { get; set; }
}
модель
[Table("tblUsers")]
public class Users
{
[Key]
public int Id { get; set; }
[Remote("CheckUserName","Users",ErrorMessage="Fullname doesn't exists")]
public string FullName { get; set; }
public string LastName { get; set; }
}
действие
public JsonResult CheckUserName(string FullName)
{
return Json(!db.Users.Any(x => x.FullName == FullName), JsonRequestBehavior.AllowGet);
}
Создать действие
public ActionResult Create(VMUsers vmModel)
{
if (ModelState.IsValid)
{
CheckUserName(vmModel.InsertUser.FullName);
var user = new Users()
{
FullName = vmModel.InsertUser.FullName,
LastName = vmModel.InsertUser.LastName
};
//Inserting in Parent table to get the Id that we will used in Child table.
db.Users.Add(user);
db.SaveChanges();
}
return View(vmModel);
}
Теперь я хочу проверить существующую запись, и если она существует, то сообщение об ошибке должно отображаться в представлении, и, если это новая запись, она должна быть вставлена, как мне сделать две вещи вместе.
Посмотреть
@model MVCLearning.Models.VMUsers
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Users</h4>
<hr />
@Html.ValidationSummary(true)
@Html.ActionLink("Go to Index","index")
<div class="form-group">
@Html.LabelFor(model => model.InsertUser.FullName, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.InsertUser.FullName)
@Html.ValidationMessageFor(model => model.InsertUser.FullName)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.InsertUser.LastName, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.InsertUser.LastName)
@Html.ValidationMessageFor(model => model.InsertUser.LastName)
</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>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>