نرم افزار SQLite Meastro
معرفی نرم افزار مدیریت پایگاه داده SQLite Maestro
1395-11-20
معرفی زبان برنامه نویسی PureBasic
معرفی زبان برنامه نویسی PureBasic
1395-11-24

سورس کد فرم ثبت نام در سایت با Asp.net MVC

سورس کد فرم ثبت نام در سایت با Asp.net MVC

سورس کد فرم ثبت نام در سایت با Asp.net MVC

سورس کد فرم ثبت نام در سایت با Asp.net MVC ، زبان طراحی وب ASP.NET MVC یکی از زبان های مطرح طراحی سایت در بین برنامه نویسان تحت وب است. به چند دلیل که یکی از مهم ترین آنها امنیت بالای این معماری است. در ادامه آموزش به علاوه سورس کد رجیستر کردن در بانک را به شما آموزش خواهیم داد.

سورس کد ثبت نام در سایت با Asp.net MVC

کدنویسی تحت وب زبان Asp.net به دلایل بسیاری بین برنامه نویسان محبوب شده ازجمله امنیت بالای این زبان!

در این بخش میخواهیم کدنویسی قسمت ثبت نام در سایت را با استفاده از این زبان و معماری MVC انجام دهیم. مشخصا اطلاعات ثبت نام کاربر باید درون بانکی قرار گیرد تا در ادامه پروژه در بخش های دیگر از جمله لاگین , بتوان از این اطلاعات استفاده کرد حال این بانک میتواند هرکدام از انواع بانک های معروف ازجمله SQL Server , Access و.. باشد که ما از پایگاه داده SQL Server استفاه میکنیم.

پس ابتدا در SQL Server یک دیتابیس با نام TestDatabase و درونش یک جدول با نام Tbl_Users ایجاد میکنیم و فیلد های زیر را برایش در نظر میگیریم(برای دریافت آموزشات کامل SQL Server به پست مربوطه مراجعه کنید)

asp-data-base

حال برنامه  Visual Studio را باز کرده  و پروژه ای جدید از نوع Asp.net ایجاد میکنیم

asp-mvc

سپس نوع پروِژه را انتخاب میکنیم که از نوع Empty و با خاصیت MVC

asp-mvc

بانک خود را با کلیک راست کردن برروی فولدر Model و انتخاب گزینه Add و سپس ADO.NET Entity Data Model به برنامه اضافه میکنیم

asp-mvc

سپس نام Model خود را انتخاب کرده و مرحله به مرحله پیش میرویم در مرحله اول نوع مدل را انتخاب میکنیم

asp-mvc

در مرحله بعد کانکشن خود را با بانک برقرار میکنیم

asp-mvc

در مرحله بعد نیز گزینه Entity Framwork 6.x را انتخاب کرده و در مرحله اخر نیز جدول یا جداول مورد نظر را انتخاب میکنیم

asp-mvc

 حال خواهید دید جدول یا جداول انتخاب شده در پنجره مدل به شما نمایش داده میشود.

سپس با اعمال کردن ویژگی 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 تعبیه شده در برنامه

asp-mvc

خواهید دید اطلاعات ویو به صورت خودکار ایجاد میشوند به این دلیل که در مرحله ایجاد Template ویو را از نوع Create قرار دادیم پس تنها کافی است از ViewBag که ایجاد کردیم جهت اطلاع رسانی به کاربر در ویو استفاده کنیم

@{

    if (ViewBag.Add == true)

    {

        <div class="alert alert-success">ثبت نام با موفقیت انجام شد</div>

    }

}

حال برنامه را با Ctrl+F5 اجرا میکنیم و پس از وارد کردن اطلاعات و کلیک کردن دکمه Create نتیجه را به صورت زیر خواهید دید

asp-mvc

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *