سورس کد فرم ورود به سایت با Asp.net MVC ، در این پست سورس کد فرم Login یا ورود به همراه آموزش خط به خط کدها را ارائه دادیم. توجه کنید که این آموزش در ادامه آموزش سورس کد فرم ثبت نام میباشد و دیگر مراحل ایجاد بانک در SQL Server و افزودن آن به پروژه را مرور مجدد نمیکنیم پس در صورت نیاز به پست قبل مراجعه فرمایید.
در این پست میخواهیم فرم ورود را با استفاده از Asp.net MVC طراحی و کدنویسی کنیم.
لازم به ذکر است که این پست در ادامه پست قبل(فرم ثبت نام در Asp.net MVC ) فرم ورود را به پروژه ایجاد شده اضافه میکند پس نیازی به شرح مجدد مراحل ایجاد و اضافه کردن دیتابیس به پروژه نیست.
برای ایجاد فرم ورود ابتدا یک کلاس با مشخصه هایی که میخواهیم کاربر به آنها دسترسی داشته باشند (ایمیل و رمز عبور) با عنوان LoginViewModel ایجاد میکنیم
public class LoginViewModel { [Display(Name = "رمز عبور")] //by this Attribute you define type of entry property value [DataType(DataType.Password)] [Required(ErrorMessage = "لطفا مقدار {۰} را پر کنید")] //define minimume lenght of property value [MinLength(5, ErrorMessage = "رمز عبور نمیتواند کمتر از ۵ کاراکتر باشد")] public string Password { get; set; } [Display(Name = "ایمیل")] //check email type for property value [EmailAddress] [Required(ErrorMessage = "لطفا مقدار {۰} را پر کنید")] public string Email { get; set; } }
سپس یک کنترلر از نوع Empty و با نام Login به صورت زیر ایجاد میکنیم
سپس درون کنترلر بدین صورت کدنویسی میکنیم
public ActionResult Login() { return View(); }
ابتدا یک متد Login که تنها وظیفه نمایش ویو مربوط به فرم ورو را به عهده دارد
[HttpPost]
سپس خصیصه HttpPost که وظیفه ارسال اطلاعات وارد شده توسط کاربر از ویو فرم ورود به متد بعد
public ActionResult Login(LoginViewModel o) { //cheking for validation of Model if (ModelState.IsValid) { //searching for an email that Entered by user in Databse var email = db.Tbl_Users.FirstOrDefault(x => x.Email == o.Email.Trim().ToLower() ); if (email != null) { //if Entered email was right, then searching for its pasword in Database var user = db.Tbl_Users.FirstOrDefault(x => x.Email == o.Email && x.Password == o.Password); if (user !=null) { //if both of email and password was right then move to Home View return Redirect("/"); } else { //if pssword was wrong ModelState.AddModelError("Password", "رمز عبور را متعلق به ایمیل وارد شده نمیباشد"); } } else { //if email was wrong ModelState.AddModelError("Email", "ایمیل اشتباه واردکرده اید"); } } return View(); }
این متد نیز همانگونه که مشخص است از مقدار وارد شده به پراپرتی های کلاس LoginViewModel که ایمیل و رمز عبور هستند
برای چک کردن صحت آنها در دیتابیس استفاده کرده و در صورت درست بودن هردو این مقادیر , کاربر به ویو Home منتقل میشود
return Redirect("/");
(این ویو نیز تنها با ایجاد یک کنترلر Home و ایجاد ویو برای اکشن ریزالت Index نیز ایجاد میشود)
و درصورت اشتباه وارد شدن مقادیر هرکدام از موجودیت های ایمیل یا رمز عبور پیغام خطای مربوط به همان مقدار را
درست در زیر TextBox همان مشخصه نمایش میدهد
ModelState.AddModelError("Password", "رمز عبور را متعلق به ایمیل وارد شده نمیباشد");
برای ایجاد ویو Login نیز تنها کافی است مانند آموزش قبل با کلیک راست کردن برروی یکی از اکشن ریزالت های
Login و انتخاب Add View یک ویو با الگوی Create و مدل LoginViewModel ایجاد کنید
سپس نتیجه را با حالت های مختلف مشاهده کنید