【问题标题】:insert if not exist , using auto incremental primary keys. mvc3如果不存在则插入,使用自动增量主键。 mvc3
【发布时间】:2012-06-20 03:40:56
【问题描述】:

我遇到了自动增量主键的问题..

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

我怎么能在 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();
        }
    }

【问题讨论】:

    标签: .net asp.net-mvc-3 insert primary-key auto-increment


    【解决方案1】:

    在插入之前检查输入 alumno.ssn 是否不存在

    db.Alumno.where(a=> a.ssn == alumno.ssn).Any()
    

    如果返回 true,则说明数据库中存在 ssn。

    在 MVC 中有不同的方法可以实现此目的。其中一种方法是,您可以在对控制器的单独调用中进行此调用,而不是在 Create Action 中。也许您可以通过 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()
    }
    

    【讨论】:

    • 谢谢你 pravin pawar!!!那行得通!如何发送错误消息?我知道这听起来像是愚蠢的问题,但我不知道语法。
    【解决方案2】:

    在我的模型类中

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-31
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 2012-02-22
      相关资源
      最近更新 更多