سورس کد فرم ثبت نام در سایت با Asp.net MVC ، زبان طراحی وب ASP.NET MVC یکی از زبان های مطرح طراحی سایت در بین برنامه نویسان تحت وب است. به چند دلیل که یکی از مهم ترین آنها امنیت بالای این معماری است. در ادامه آموزش به علاوه سورس کد رجیستر کردن در بانک را به شما آموزش خواهیم داد.
کدنویسی تحت وب زبان Asp.net به دلایل بسیاری بین برنامه نویسان محبوب شده ازجمله امنیت بالای این زبان!
در این بخش میخواهیم کدنویسی قسمت ثبت نام در سایت را با استفاده از این زبان و معماری MVC انجام دهیم. مشخصا اطلاعات ثبت نام کاربر باید درون بانکی قرار گیرد تا در ادامه پروژه در بخش های دیگر از جمله لاگین , بتوان از این اطلاعات استفاده کرد حال این بانک میتواند هرکدام از انواع بانک های معروف ازجمله SQL Server , Access و.. باشد که ما از پایگاه داده SQL Server استفاه میکنیم.
پس ابتدا در SQL Server یک دیتابیس با نام TestDatabase و درونش یک جدول با نام Tbl_Users ایجاد میکنیم و فیلد های زیر را برایش در نظر میگیریم(برای دریافت آموزشات کامل SQL Server به پست مربوطه مراجعه کنید)
حال برنامه Visual Studio را باز کرده و پروژه ای جدید از نوع Asp.net ایجاد میکنیم
سپس نوع پروِژه را انتخاب میکنیم که از نوع Empty و با خاصیت MVC
بانک خود را با کلیک راست کردن برروی فولدر Model و انتخاب گزینه Add و سپس ADO.NET Entity Data Model به برنامه اضافه میکنیم
سپس نام Model خود را انتخاب کرده و مرحله به مرحله پیش میرویم در مرحله اول نوع مدل را انتخاب میکنیم
در مرحله بعد کانکشن خود را با بانک برقرار میکنیم
در مرحله بعد نیز گزینه Entity Framwork 6.x را انتخاب کرده و در مرحله اخر نیز جدول یا جداول مورد نظر را انتخاب میکنیم
حال خواهید دید جدول یا جداول انتخاب شده در پنجره مدل به شما نمایش داده میشود.
سپس با اعمال کردن ویژگی MetadataType به کلاس جدول اضافه شده به صورت زیر
[MetadataType(typeof(UserMetadata))]
یک کلاس با فیلدهای مدل ایجاد کرده و ویژگی های مورد نیازمثل Key , DisplayName و.. را به آن اضافه خواهیم کرد.
//This Attribute is for Define Primary Key [Key] public int ID { get; set; } //this Attribute is for Define Lable for property [Display(Name ="نام")] //by this Attribute you should fill the field [Required(ErrorMessage ="لطفا مقدار {۰} را پر کنید")] public string Name { get; set; } [Display(Name ="نام خانوادگی")] [Required(ErrorMessage ="لطفا مقدار {۰} را پر کنید")] public string Family { get; set; } [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; } [Display(Name ="موبایل")] //check for mobile number property value [RegularExpression("09[0-9]{9}",ErrorMessage ="شماره موبایل معتبر نیست")] [Required(ErrorMessage ="لطفا مقدار {۰} را پر کنید")] public string Mobile { get; set; }
حال زمان ایجاد یک کنترلر است. درون کنترلر ActionResult مربوط به Register را قرار میدهیم. متد Register اول برا ارسال مقادیر مدل به متد دوم برای ذخیره سازی دربانک میباشد و متد دوم زمانی اجرا میشود که دکمه ثبت زده شود.
TestDatabaseEntities db = new TestDatabaseEntities(); public ActionResult Register() { return View(); } [HttpPost] public ActionResult Register(Tbl_Users o, HttpPostedFileBase Image) { if (!ModelState.IsValid) return View(); //check Email Adress in database if (!db.Tbl_Users.Any(x => x.Email.ToLower().Trim() == o.Email)) { //set user enter value to table field Tbl_Users user = new Tbl_Users() { Name = o.Name.Trim(), Family = o.Family.Trim(), Email = o.Email.ToLower().Trim(), Password = o.Password, Mobile = o.Mobile }; //add object to database db.Tbl_Users.Add(user); ViewBag.Add = true; //save changes in database db.SaveChanges(); } else { //set the error text for Email object ModelState.AddModelError("Email", "ایمیل وارد شده موجود است"); return View(); } return View(); }
دستورات درون این متد بدین شرح است :
ابتدا مدل خود را چک میکنیم که خطایی نداشته و معتبر باشد با دستور ModelState.IsValid سپس ایمیل وارد شده را چک میکنیم که قبلا در بانک ثبت شده یا خیر که درصورت نبود ایمیل در بانک اقدام به ذخیره سازی اطلاعات کاربر میکنیم.
سپس ViewBag تعریف میکنیم تا در View برنامه بتوانیم از آن برای اطلاعات رسانی به کاربر استفاده کنیم و در انتها نیز رکورد را Add و Save میکنیم
حال view ثبت نام را ایجاد میکنیم براساس کلاس ایجاد شده و Model تعبیه شده در برنامه
خواهید دید اطلاعات ویو به صورت خودکار ایجاد میشوند به این دلیل که در مرحله ایجاد Template ویو را از نوع Create قرار دادیم پس تنها کافی است از ViewBag که ایجاد کردیم جهت اطلاع رسانی به کاربر در ویو استفاده کنیم
@{ if (ViewBag.Add == true) { <div class="alert alert-success">ثبت نام با موفقیت انجام شد</div> } }
حال برنامه را با Ctrl+F5 اجرا میکنیم و پس از وارد کردن اطلاعات و کلیک کردن دکمه Create نتیجه را به صورت زیر خواهید دید