1

我有自动增量主键的问题..

当我将学生添加到我的数据库时,我可以一遍又一遍地添加同一个学生,因为学生的主键是自动递增的,所以它当然不会重复,我需要验证学生的 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();
        }
    }
4

2 回答 2

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()
}
于 2012-06-18T07:12:27.647 回答
0

在我的模型类

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);
}
于 2015-03-21T23:46:15.577 回答