public IActionResult Login(LoginViewModel model) { if (ModelState.IsValid) //null허용x인 필수값들 모두 받았는지? -> 사용자 이름도 required기때문에 오류남, 그래서 뷰모델 따로만들어줌 { using (var db = new AspnetNoteDBContext()) //오픈, 커넥션 후 자동으로 닫기위해 using 사용 // sql에 접근하는 db 라는 변수 생성. { // Linq 쿼리식 // => 는 go to //var user = db.Users.FirstOrDefault(u => u.UserId == model.UserId && u.UserPassword == model.UserPassword); var user = db.Users .FirstOrDefault(u => u.UserId.Equals(model.UserId) && u.UserPassword.Equals(model.UserPassword)); //equals를 쓰는 이유는, 변수생성해서 메모리 할당 안해도 되기때문. if (user != null) { //로그인 성공 시 //HttpContext.Session.SetInt32(key, value); HttpContext.Session.SetInt32("USER_LOGIN_KEY", user.UserNo); return(RedirectToAction("LoginSuccess", "Home")); // 로그인 성공 페이지로 이동, return이기 떄문에 뒤의 구문 안탐. } //로그인 실패 시 ModelState.AddModelError(string.Empty, "사용자 ID 혹은 비밀번호가 올바르지 않습니다."); } return(RedirectToAction("index", "Home")); //Home컨트롤러의 index액션으로 넘김 (view) } return(View(model)); }
public IActionResult Login(LoginViewModel model) { //ID와 비밀번호 - 필수 if (ModelState.IsValid) { using (var db = new AspnetNoteDBContext()) { // Linq 쿼리식 - 메서드 체이닝 // 람다식 => : A Go To B // u -> 익명 인수 // == 비교는 메모리 누수가 발생함. //var user = db.Users.FirstOrDefault(u => u.UserId == model.UserId && u.UserPassword == model.UserPassword); var user = db.Users.FirstOrDefault(u => u.UserId.Equals(model.UserId) && u.UserPassword.Equals(model.UserPassword)); //var user = db.Users.FirstOrDefault(u => u.UserId.Equals(model.UserId)); if (user != null) { //로그인에 성공했을 때 //HttpContext.Session.SetInt32(string key, int value); key - 식별자 value - 사용자 정보 HttpContext.Session.SetInt32("USER_LOGIN_KEY", user.UserNo); return(RedirectToAction("LoginSuccess", "Home")); //로그인 성공 페이지로 이동 } //else //{ //사용자 ID 자체가 회원가입 X 경우 //ModelState.AddModelError(string.Empty, "사용자 ID가 존재하지 않습니다."); //} } //로그인에 실패했을 때 ModelState.AddModelError(string.Empty, "사용자 ID 혹은 비밀번호가 올바르지 않습니다."); } return(View(model)); }
public IActionResult Login(LoginViewModel model) { // ID, 비밀번호 - 필수 if (ModelState.IsValid) { using (var db = new AspnetNoteDBContext()) { var user = db.Users .FirstOrDefault(u => u.UserId.Equals(model.UserId) && u.UserPassword.Equals(model.UserPassword)); if (user != null) { // 로그인 성공했을때 HttpContext.Session.SetInt32("USER_LOGIN_KEY", user.UserNo); return(RedirectToAction("Index", "Home")); } } // 로그인 실패했을때' ModelState.AddModelError(string.Empty, "사용자 ID 또는 비밀번호가 올바르지 않습니다."); } return(View(model)); }
public IActionResult Add(Note model) { if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null) { //로그인이 안된 상태 return(RedirectToAction("Login", "Account")); } model.UserNo = int.Parse(HttpContext.Session.GetInt32("USER_LOGIN_KEY").ToString()); if (ModelState.IsValid) { using (var db = new AspnetNoteDBContext()) { db.Notes.Add(model); if (db.SaveChanges() > 0) { return(Redirect("Index")); } //db.SaveChanges(); //Commit } ModelState.AddModelError(string.Empty, "게시물을 저장할 수 없습니다."); } return(View(model)); }
/// <summary> /// 게시판 리스트 /// </summary> /// <returns></returns> public IActionResult Index() { using (var db = new AspnetNoteDBContext()) { var list = db.Notes.ToList(); return(View(list)); } }
[HttpPost] //post방식으로 전송했을 때의 메서드 오버로딩 public IActionResult Register(User model) { if (ModelState.IsValid) //null허용x인 필수값들 모두 받았는지? { using (var db = new AspnetNoteDBContext()) { db.Users.Add(model); db.SaveChanges(); } return(RedirectToAction("index", "Home")); //Home컨트롤러의 index액션으로 넘김 (view) } return(View()); }
public IActionResult Register(User model) { if (ModelState.IsValid) { using (var db = new AspnetNoteDBContext()) { db.Users.Add(model); db.SaveChanges(); } return(RedirectToAction("Index", "Home")); } return(View(model)); }
/// <summary> /// 게시판 리스트 /// </summary> /// <returns></returns> public IActionResult Index() { if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null) { //로그인이 안된 상태 return(RedirectToAction("Login", "Account")); } using (var db = new AspnetNoteDBContext()) { var list = db.Notes.ToList(); return(View(list)); //view 안에 무언갈 담게되면 그 담은 것을 model이라고 인식함. VIEW 창에 가서는 model쓸것! } }
/* 게시글 수정인데... 어떻게 코딩해야 할지 모르겠다ㅠㅠ * [HttpPost] * public IActionResult Edit(Note model) * { * if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == UserNo) * { * //작성자가 아닌 상태 * ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('게시글 작성자만 수정할 수 있습니다.')", true); * return RedirectToAction("Index", "Note"); * } * model.UserNo = int.Parse(HttpContext.Session.GetInt32("USER_LOGIN_KEY").ToString()); * * if (ModelState.IsValid) * { * using (var db = new AspnetNoteDBContext()) * { * db.Notes.Add(model); * if (db.SaveChanges() > 0) // commit을 해 주는 것. _ 무슨개념이지..? * { * return Redirect("Index"); // = return RedirectToAction("Index", "Note"); * } * } * ModelState.AddModelError(string.Empty, "게시물을 저장할 수 없습니다."); //modelstate에 에러에 대한 메세지를 추가 * } * return View(model); * }*/ /// <summary> /// 게시판 상세 /// </summary> /// <param name="noteNo"></param> /// <returns></returns> public IActionResult Detail(int noteNo) { //로그인이 안된 상태 if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null) { return(RedirectToAction("Login", "Account")); } //로그인 된 상태 using (var db = new AspnetNoteDBContext()) { var note = db.Notes.FirstOrDefault(n => n.NoteNo.Equals(noteNo)); return(View(note)); } }
public IActionResult Register(User model) { if (ModelState.IsValid) { // Java try(SqlSession){} catch(){} // C# using (var db = new AspnetNoteDBContext()) { db.Users.Add(model); db.SaveChanges(); } //HomeController의 Index View로 넘긴다. return(RedirectToAction("Index", "Home")); } return(View()); }
public IActionResult Add(Note model) { if (ModelState.IsValid) { using (var db = new AspnetNoteDBContext()) { db.Notes.Add(model); if (db.SaveChanges() > 0) { return(Redirect("index")); // 동일한 컨드롤일경우 } } ModelState.AddModelError(string.Empty, "게시물을 저장할 수 없습니다."); } return(View()); }