.net 使用自动增量主键插入(如果不存在)。mvc3

.net 使用自动增量主键插入(如果不存在)。mvc3,.net,asp.net-mvc-3,insert,primary-key,auto-increment,.net,Asp.net Mvc 3,Insert,Primary Key,Auto Increment,自动增量主键有问题 当我向我的数据库中添加一个学生时,我可以一次又一次地添加同一个学生,因为学生的主键是自动递增的,因此它当然不会重复,在插入之前,我需要验证该学生的SSN在数据库中不存在 我如何在mvc3上做到这一点??(我在.net和mvc3中是全新的) 我在学生控制器中创建的代码是: [HttpPost] public ActionResult Create(Alumno alumno) { try { using (

自动增量主键有问题

当我向我的数据库中添加一个学生时,我可以一次又一次地添加同一个学生,因为学生的主键是自动递增的,因此它当然不会重复,在插入之前,我需要验证该学生的SSN在数据库中不存在

我如何在mvc3上做到这一点??(我在.net和mvc3中是全新的)

我在学生控制器中创建的代码是:

[HttpPost]
    public ActionResult Create(Alumno alumno)
    {
        try
        {
            using (var db = new administracionEntities())
            {
                db.Alumno.Add(alumno);
                db.SaveChanges();
            }
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

在插入之前,请检查input alumno.ssn是否不存在

db.Alumno.where(a=> a.ssn == alumno.ssn).Any()
如果返回true,则数据库中存在ssn

在MVC中有不同的方法可以实现这一点。在其中一种方法中,您可以在对控制器的单独调用中进行此调用,而不是在创建操作中进行此调用。可能您可以通过JQuery.Ajax调用客户端的SSN文本框模糊事件来检查是否存在重复的SSN

$.ajax({
   type: "Get",
   url: "StudentController/DoesSSNExist",
   data: "ssn=#", 
   success: function(msg){
       if(msg)
        alert('ssn already exists');
   }
这是控制器操作

public bool DoesSSNExist(string ssn)
{
    return db.Alumno.where(a=> a.ssn == ssn).Any()
}

在插入之前,请检查input alumno.ssn是否不存在

db.Alumno.where(a=> a.ssn == alumno.ssn).Any()
如果返回true,则数据库中存在ssn

在MVC中有不同的方法可以实现这一点。在其中一种方法中,您可以在对控制器的单独调用中进行此调用,而不是在创建操作中进行此调用。可能您可以通过JQuery.Ajax调用客户端的SSN文本框模糊事件来检查是否存在重复的SSN

$.ajax({
   type: "Get",
   url: "StudentController/DoesSSNExist",
   data: "ssn=#", 
   success: function(msg){
       if(msg)
        alert('ssn already exists');
   }
这是控制器操作

public bool DoesSSNExist(string ssn)
{
    return db.Alumno.where(a=> a.ssn == ssn).Any()
}
在我的模型课上

public class Student {
    public int StudentID { get; set; }
    [Remote("UsernameChecker", "Student")]
    public string Username { get; set; }
}
在我的控制器中

public virtual JsonResult UsernameChecker(string Username){
    bool checkuser = db.Student.Any(i => i.Username == Username);
    return checkuser
        ? Json("Username already exists", JsonRequestBehavior.AllowGet)
        : Json(true, JsonRequestBehavior.AllowGet);
}
在我的模型课上

public class Student {
    public int StudentID { get; set; }
    [Remote("UsernameChecker", "Student")]
    public string Username { get; set; }
}
在我的控制器中

public virtual JsonResult UsernameChecker(string Username){
    bool checkuser = db.Student.Any(i => i.Username == Username);
    return checkuser
        ? Json("Username already exists", JsonRequestBehavior.AllowGet)
        : Json(true, JsonRequestBehavior.AllowGet);
}

谢谢你,普拉文·帕瓦尔!!!成功了!!!如何发送错误消息?我知道这听起来像是阿杜姆问题,但我不知道语法。谢谢你普拉文·帕尔!!!成功了!!!如何发送错误消息?我知道这听起来像是个问题,但我不知道语法。