fekre-bekr,learning,source,سورس,سورس رایگان,آموزش,اخبار,فناوری اطلاعات,mvc,.net,ساری,آموزشگاه,asp.net,c#.net,programing,c++,vb,آموزش برنامه نویسی,دانلود

اشتراک در سایت


مطالب تصادفی
اخبار و مقالات در فکر بکر سورس چرخش تصاویر در C#

جهت دانلود سورس چرخش تصاویر در سی شارپ به ادامه مطلب توج نمایید ...


اخبار و مقالات در فکر بکر حل تمرین مسائل برنامه نویسی از بخش کلاس ها در سی شارپ

جهت مشاهده سوال و دانلود سورس آن لطفا به ادامه مطلب توجه نمایید. ...


اخبار و مقالات در فکر بکر سورس برنامه notepad در سی شارپ

در این برنامه سورس notepad در c# را بصورت رایگان برای شما کاربران عزیز در فکر بکر جهت دانلود قرار دادیم ...


اخبار و مقالات در فکر بکر حل تمرین مسائل برنامه نویسی از بخش طراحی منو (menu) در سی شارپ

در این برنامه سوال 2 و 3 از فصل طراحی منو در یک پروژه حل شده است ، در این برنامه نحوه ایجاد منو ها و کار با تصاویر را خواهیم آموخ ...


اخبار و مقالات در فکر بکر بررسی نکات امنیتی در آپلود تصاویر

در ادامه مطلب برای شما کاربران عزیز کلاسی را تهیه نمودم تا با کمک آن بتوانید تصاویر دریافتی را با چک کردن موارد کامل امنیتی آپلود ...


اخبار و مقالات در فکر بکر آموزش ایجاد برنامه نصب (setup) قسمت اول

برای ایجاد برنامه نصب روشهای گوناگونی وجود دارد اما من سعی کردم تا یک روش جامع که بتواند تمامی نیازهای برنامه نویسان را مرتفع نما ...


اخبار و مقالات در فکر بکر آموزش استفاده از PersianDateTimePicker (تقویم فارسی) در برنامه های تحت وب

با سلام - در این مقاله به آموزش نحوه استفاده از کنترل PersianDateTimePicker(تقویم فارسی) در برنامه های تحت وب می پردازیم ...


اخبار و مقالات در فکر بکر سورس بسیار زیبا به زبان c#

با سلام خدمت کاربران فکر بکر - سورس بسیار زیبایی را در این ساعت از فکر بکر بصورت رایگان برای شما جهت دانلود قرار دادم لطفا به اام ...


اخبار و مقالات در فکر بکر آموزش نحوه ایجاد Model برای دیتابیس موجود در Entity Framework Core

در این آموزش به نحوه ایجاد کلاسهای context و entity برای دیتابیس موجود در Entity Framework Core خواهیم پرداخت. ...


اخبار و مقالات در فکر بکر پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش چهارم)

در این آموزش به پیاده سازی سیستم لاگین کاربران در Asp.net mvc خواهیم پرداخت. نکته ای که در اینجا حائز اهمیت است بدست آوردن نقش ...


اخبار و مقالات در فکر بکر آموزش اتصال داده ها بین دو کنترل DropDownList در Asp.netMVC بصورت Ajax

در این قسمت به آموزش اتصال داده ها بین دو کنترل DropDownList مانند آنچه که جهت نمایش شهر ها بر اساس استان انتخاب شده مورد استفاد ...


اخبار و مقالات در فکر بکر حل تمرین مسائل برنامه نویسی از بخش کلاسها در سی شارپ

در این برنامه به طراحی کلاس دانش آموز با سازنده های مختلف میپردازیم. لطفا به ادامه مطلب توجه نمایید ...


اخبار و مقالات در فکر بکر آموزش مبحث Single Responsibility Principle (SRP) از بخش اصول طراحی شی گرا (SOLID)

در این اموزش هدف ایجاد کلاس و اشیاء با کمترین وابستگی جهت بهینه کردن تست و آسان نمودن توسعه نرم افزار می باشد. لذا برنامه نویس با ...


اخبار و مقالات در فکر بکر فایل pdf آموزش کامپوننت Backgroundworker برای برنامه نویسی بصورت همزمان

با استفاده از کامپوننت BackgroundWorker شما میتوانید به برنامه نویسی و اجرای کارهای زمانبر در یک Thread دیگر و بصورت موازی بپرداز ...


پیوندها
5 (1)

در این مقاله به آموزش عملیات CRUD که همان چهار عملیات اصلی (درج – حذف – بروزرسانی و انتخاب رکوردها ) می باشد را در محیط Asp.net core2 و با استفاده از Razor Pages خواهیم پرداخت.
گروه : Asp.net Core
تاریخ انتشار: 1396/11/06

فکر بکر

در این مقاله به آموزش عملیات CRUD که همان چهار عملیات اصلی (درج – حذف – بروزرسانی و انتخاب رکوردها ) می باشد را در محیط Asp.net core2 و با استفاده از Razor Pages  خواهیم پرداخت.

Razor Page  یک ویژگی جدید در Asp.net Core MVC می باشد که نحوه کدنویسی را برای برنامه نویسان ساده تر و کارامد تر می کند.

از Razor Page در مواردی که  تعداد صفحات موجود برای طراحی زیاد و بزرگ نیستند و نیازی به ایجاد کنترلر و اکشن نباشد می توانیم استفاده کنیم.
هر یک از Razor Page ها دارای دو بخش کد نویسی و بخش طراحی می باشد. که پسوند فایلهای آن به ترتیب *.cshtml.cs  و *.cshtml می باشد.
جهت  استفاده از آموزش این مقاله به موارد زیر نیاز خواهید داشت.

نصب netcore2 از اینجا و نصب vs2017 نسخه 15.3 و بالاتر از اینجا

-    اکنون کار را شروع میکنیم.


برای ایجاد یک پروژه از نوع Razor Page ابتدا از منوی File گزینه New Project را انتخاب نمایید . سپس از پنجره جدید از قسمت Template گزینه ASP.NET Core Web Application. را انتخاب نمایید و نامی برای پروژه برگزینید.

new project in .net core 2

سپس در پنجره بعدی با استفاده از تصویر زیر پروژه خود را ایجاد کنید

web application

در پایان پس از کلیک بر روی OK پروژه شما ایجاد خواهد شد.

solution-project

 

Razor Page ها بصورت Code behind  می باشند.
در این مرحله ابتدا یک پوشه بنام Models ایجاد کرده و درون این پوشه کلاسی بنام Customer که بعنوان مدل برنامه ما برای عملیات CRUD میباشد ایجاد میکنیم.
 کلاس Customer  بصورت زیر می باشد.

    [Table("CustomerTB")]  

public class Customer  

{  

    [Key]  

    public int CustomerID { get; set; }  

    [Required(ErrorMessage = "Enter Name")]  

    public string Name { get; set; }  

    [Required(ErrorMessage = "Enter Address")]  

    public string Address { get; set; }  

    [Required(ErrorMessage = "Enter Country Name")]  

    public string Country { get; set; }  

    [Required(ErrorMessage = "Enter City Name")]  

    public string City { get; set; }  

        [Required(ErrorMessage = "Enter City Phoneno")]  

         public string Phoneno { get; set; }  

     }  

 در این مرحله برای اضافه کردن razor page بر روی پوشه Pages کلیک راست نمایید و سپس گزینه Add و در پایان گزینه NewItem را انتخاب نمایید.
در پنجره جدید باز شده گزینه Razor Page را از لیست انتخاب نمایید و نام آن را به   Customer تغییر دهید .
بعد از کلیک بر روی گزینه  Add شما فایل  Customer.cshtml را درون پوشه Pages مشاهده خواهید نمود که بخش کد نویسی سمت سرور آن Customer.cshtml.cs می باشد.

razor page

فایل Customer.cshtml در واقع چیزی شبیه View در روش MVC می باشد و  شما میتوانید کدهای  html را جهت طراحی صفحه در این قسمت درج کنید.
در این فایل شما ابتدا دستور @Page را مشاهده میکنید  و در واقع بیانگر این است که این Page  یک Razor Page میباشد و نیازی به Controller و Action ندارد.
و در خط بعدی عبارت @model CustomerModel را مشاهده میکنید که در واقع این نام همان کلاسی میباشد که جهت کدنویسی این صفحه در یک کلاس جداگانه مورد استفاده قرار خواهد گرفت و نام فایل آن Customer.cshtml.cs  میباشد.

Customer Model

کلاس CustomerModel  از PageModel ارث بری می کند و برای پاسخ به درخواستهای صفحه مورد استفاده قرار خواهد گرفت.
کلاس CustomerModel را برای شروع عملیات CRUD بصورت زیر ویرایش کنید.

 

 public string WelcomeMessage { get; set; }  

   

         public void OnGet()  

         {  

             WelcomeMessage = "WelCome to Razor Pages by mohammad mahdavi";  

         }  

متد OnGet در واقه نقطه آغاز ورود به صفحه  Customer میباشد و بعد از اجرای برنامه جهت مشاهده محتویات این صفحه ابتدا متد Get اجرا خواهد شد.
صفحه Customer.cshtml را بصورت زیر ویرایش میکنیم.

Customer page

اکنون برنامه را اجرا کنید و جهت مشاهده صفحه Customer ادرس را بصورت http://localhost:######/Customer   و شماه پورت را بر اساس سیستم خودتان درج نمایید.
نکته : در استفاده از Page  ها در برنامه جهت انتقال داده ها میتوانیم از مدل یا پروپرتیها مانند WelcomeMessage که در مثال فوق مشاهده میکنید استفاده کرد.
بنابراین برای شروع برنامه CRUD به یک مدل از Customer نیاز خواهیم داشت.

public class CustomerModel : PageModel  

    {  

          

        public Customer Customer { get; set; }  

  

        public void OnGet()  

        {  

             

        }  

      }  

در اینصورت مدل Customer در صفحه Customer.cshmtl قابل دسترسی خواهد بود.
صفحه Customer.cshtml را بصورت زیر طراحی کنید . (در این فرم برای ایجاد کنترلها از Tag Helper استفاده شده است)

page  

using RazorPagesDemo.Models @*namespace*@  

model CustomerModel  

script src="~/lib/jquery/dist/jquery.js"></script>  

script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>  

script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>  

 

 

div class="container">  

   <h3>Add Customer</h3>  

   <hr />  

   <br />  

   <form method="post">  

       <div class="row">  

           <div class="col-md-4">  

                <label asp-for="Customer.Name"></label>  

                <input asp-for="Customer.Name" class="form-control" />  

                <span class="alert-danger" asp-validation-for="Customer.Name"></span>  

            </div>  

        </div>  

        <div class="row">  

            <div class="col-md-4">  

                <label asp-for="Customer.Address"></label>  

                <input asp-for="Customer.Address" class="form-control" />  

                <span class="alert-danger" asp-validation-for="Customer.Address"></span>  

            </div>  

        </div>  

        <div class="row">  

            <div class="col-md-4">  

                <label asp-for="Customer.Country"></label>  

                <input asp-for="Customer.Country" class="form-control" />  

                <span class="alert-danger" asp-validation-for="Customer.Country"></span>  

            </div>  

        </div>  

  

        <div class="row">  

            <div class="col-md-4">  

                <label asp-for="Customer.City"></label>  

                <input asp-for="Customer.City" cl class="form-control" />  

                <span class="alert-danger" asp-validation-for="Customer.City"></span>  

            </div>  

        </div>  

  

        <div class="row">  

            <div class="col-md-4">  

                <label asp-for="Customer.Phoneno"></label>  

                <input asp-for="Customer.Phoneno" class="form-control" />  

                <span class="alert-danger" asp-validation-for="Customer.Phoneno"></span>  

            </div>  

        </div>  

        <br />  

        <input type="submit" value="Save" class="btn btn-primary" />  

        <a class="btn btn-default" href="/allcustomer">Cancel</a>  

    </form>  

</div>  

اکنون صفحه خود را ذخیره نمایید و برنامه را اجرا کنید.

view page

 در RazorPage ها از دو متد برای پاسخ به درخواستها استفاده میشود که به ترتیب OnGet و OnPost نام دارد.
متد OnPost جهت پاسخ به درخواستهای صادر شده از طرف کاربران مورد استفاده قرار میگیرد.
در این مثال جهت ذخیره اطلاعات ارسال شده از طرف صفحه   Customer.cshtml از متد OnPost استفاده میکنیم.
نکته : برای بایند شدن داده های ارسال شده از طرف کاربر به متد OnPost باید برای مدل ایجاد شده  یک ویژگی  [BindProperty] در نظر بگیریم.

 

public class CustomerModel : PageModel  

    {  

          [BindProperty]

        public Customer Customer { get; set; }  

  

        public void OnGet()  

        {  

             

        }  

 

      }  

 در این قسمت جهت کار با داده ها یک دیتابیس به نام CustomerDB و درون آن یک جدولی با نام CustomerTB ایجاد میکنیم.

Customer Table

در این برنامه جهت ارتباط با دیتابیس از Entity FrameWork استفاده خواهیم کرد بنابراین از طریق nuget عبارت Microsoft.EntityFrameworkCore.SqlServer را جستجو و سپس نصب کنید.
رشته اتصال جهت ارتباط با بانک اطلاعاتی را از طریق فایل appsetting.json در روت اصلی برنامه تنظیم نمایید.
در پوشه Models کلاسی به نام DatabaseContext  ایجاد کنید .کلاس ایجاد شده از کلاس DbContext مشتق خواهد شد.

  using Microsoft.EntityFrameworkCore;  

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Threading.Tasks;  

  

namespace RazorPagesDemo.Models  

{  

    public class DatabaseContext : DbContext  

    {  

        public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options)  

        {  

  

        }  

        Public DbSet<Customer> CustomerTB{get ; set ;}

    }  

}


تابع Configuration از کلاس startup.cs جهت اماده سازی برای استفاده از کلاس Data BaseContext  را بصورت زیر ویرایش کنید. 

configuration in startup.cs

اکنون زمان آن رسیده است تا کلاس CustomerModel را جهت عملیات ذخیره سازی کامل نماییم .

using Microsoft.AspNetCore.Mvc;  

using Microsoft.AspNetCore.Mvc.RazorPages;  

using RazorPagesDemo.Models;  

  

namespace RazorPagesDemo.Pages  

{  

    public class CustomerModel : PageModel  

    {  

        DatabaseContext _Context;  

        public CustomerModel(DatabaseContext databasecontext)  

        {  

            _Context = databasecontext;  

        }  

  

        [BindProperty]  

        public Customer Customer { get; set; }  

  

        public void OnGet()  

        {  

  

        }  

  

        public ActionResult OnPost()  

        {  

            var customer = Customer;  

            if (!ModelState.IsValid)  

            {  

                return Page(); // return page  

            }  

  

            customer.CustomerID = 0;  

            var result = _Context.Add(customer);  

            _Context.SaveChanges(); // Saving Data in database  

  

            return RedirectToPage("AllCustomer");  

        }  

    }  

}  

 

اکنون برنامه را ذخیره و سپس اجرا نمایید.

نمایش تمامی رکوردها :
برای نمایش تمامی محتویات جدول یک Razor Page به برنامه اضافه میکنیم و نام آنرا AllCustomer قرار میدهیم .
در این مرحله جهت نمایش تمامی داده ها متد OnGet کلاس مورد نظر را بصورت زیر ویرایش میکنیم.

using Microsoft.AspNetCore.Mvc;  

using Microsoft.AspNetCore.Mvc.RazorPages;  

using RazorPagesDemo.Models;  

using System.Collections.Generic;  

using System.Linq;  

  

namespace RazorPagesDemo.Pages  

{  

    public class AllCustomerModel : PageModel  

    {  

        DatabaseContext _Context;  

        public AllCustomerModel(DatabaseContext databasecontext)  

        {  

            _Context = databasecontext;  

        }  

  

        public List<Customer> CustomerList { get; set; }  

  

        public void OnGet()  

        {  

            var data = (from customerlist in _Context.CustomerTB  

                        select customerlist).ToList();  

  

            CustomerList = data;  

        }  

    }  

}  

قمست AllCustomerModel.cshtml را بصورت زیر ویرایش نمایید.

@page  

@using RazorPagesDemo.Models  

@model AllCustomerModel  

  

<h2>Index</h2>  

  

<p>  

    <a asp-page="Customer">Create New Customer</a>  

</p>  

<table class="table">  

    <thead>  

        <tr>  

            <th>  

                @Html.DisplayName("Name")  

            </th>  

            <th>  

                @Html.DisplayName("Address")  

            </th>  

            <th>  

                @Html.DisplayName("Country")  

            </th>  

            <th>  

                @Html.DisplayName("City")  

            </th>  

            <th>  

                @Html.DisplayName("Phoneno")  

            </th>  

            <th>Edit | Delete</th>  

        </tr>  

    </thead>  

    <tbody>  

        @foreach (var item in Model.CustomerList)  

        {  

            <tr>  

                <td>  

                    @Html.DisplayFor(modelItem => item.Name)  

                </td>  

                <td>  

                    @Html.DisplayFor(modelItem => item.Address)  

                </td>  

                <td>  

                    @Html.DisplayFor(modelItem => item.Country)  

                </td>  

                <td>  

                    @Html.DisplayFor(modelItem => item.City)  

                </td>  

                <td>  

                    @Html.DisplayFor(modelItem => item.Phoneno)  

                </td>  

                <td>  

                    <a asp-page="./EditCustomer" asp-route-id="@item.CustomerID">Edit</a> |  

                    <a asp-page="./AllCustomer" onclick="return confirm('Are you sure you want to delete this item?');" asp-page-handler="Delete" asp-route-id="@item.CustomerID">Delete</a>  

                </td>  

            </tr>  

        }  

    </tbody>  

</table> 

 در کدهایی که در قسمت بالا درج شده است جهت ویرایش یک رکورد در قسمت تگ a از تو خاصیت asp-page و asp-route-id برای ارسال کد کاربر به صفحه مقصد استفاده شده است.

<a asp-page="./EditCustomer" asp-route-id="@item.CustomerID">Edit</a>

 اما در قسمت حذف یک رکورد با توجه به کدهای بالا از خاصیت asp-page-handler="Delete"  استفاده کردیم لذا متد OnGet برای صفحه مورد نظر بصورت زیر ویرایش خواهد شد.

 public ActionResult OnGetDelete(int? id)  

         {  

             if (id != null)  

             {  

                 var data = (from customer in _Context.CustomerTB  

                             where customer.CustomerID == id  

                             select customer).SingleOrDefault();  

   

                 _Context.Remove(data);  

                 _Context.SaveChanges();  

             }  

             return RedirectToPage("AllCustomer");  

         }

 
جهت ویرایش اطلاعات یک صفحه به نام EditCustomer به برنامه اضافه نمایید و کلاس آن را بصورت زیر ویرایش کنید.

 Public class EditCustomerModel : PageModel  

 {  

     DatabaseContext _Context;  

     public EditCustomerModel(DatabaseContext databasecontext)  

     {  

         _Context = databasecontext;  

     }  

 

 

     [BindProperty]  

     public Customer Customer { get; set; }  

 

     public void OnGet(int? id)  

     {  

         if (id != null)  

         {  

             var data = (from customer in _Context.CustomerTB  

                         where customer.CustomerID == id  

                         select customer).SingleOrDefault();  

 

             Customer = data;  

         }  

     }  

 

 

     public ActionResult OnPost()  

     {  

         var customer = Customer;  

         if (!ModelState.IsValid)  

         {  

             return Page();  

         }  

 

         _Context.Entry(customer).Property(x => x.Name).IsModified = true;  

         _Context.Entry(customer).Property(x => x.Phoneno).IsModified = true;  

         _Context.Entry(customer).Property(x => x.Address).IsModified = true;  

         _Context.Entry(customer).Property(x => x.City).IsModified = true;  

         _Context.Entry(customer).Property(x => x.Country).IsModified = true;  

         _Context.SaveChanges();  

         return RedirectToPage("AllCustomer");  

     }  

 }  

 سپس صفحه EditCustomer.cshtml را بصورت زیر ویرایش میکنیم.

@page "{id:int}"  

@using RazorPagesDemo.Models  

@model EditCustomerModel  

  

<div class="container">  

    <h3>Edit Customer</h3>  

    <hr />  

    <br />  

    <form method="post">  

        <input asp-for="Customer.CustomerID" type="hidden" />  

        <div class="row">  

            <div class="col-md-4">  

                <label asp-for="Customer.Name"></label>  

                <input asp-for="Customer.Name" class="form-control" />  

            </div>  

        </div>  

        <div class="row">  

            <div class="col-md-4">  

                <label asp-for="Customer.Address"></label>  

                <input asp-for="Customer.Address" class="form-control" />  

            </div>  

        </div>  

        <div class="row">  

            <div class="col-md-4">  

                <label asp-for="Customer.Country"></label>  

                <input asp-for="Customer.Country" class="form-control" />  

            </div>  

        </div>  

  

        <div class="row">  

            <div class="col-md-4">  

                <label asp-for="Customer.City"></label>  

                <input asp-for="Customer.City" cl class="form-control" />  

            </div>  

        </div>  

  

        <div class="row">  

            <div class="col-md-4">  

                <label asp-for="Customer.Phoneno"></label>  

                <input asp-for="Customer.Phoneno" class="form-control" />  

            </div>  

        </div>  

        <br />  

        <input type="submit" value="Save" class="btn btn-primary" />  

        <a class="btn btn-default" href="/allcustomer">Cancel</a>  

    </form>  

</div>  

 
فرمان @page "{id:int}"   به معنی آن است که جهت مشاهده این صفحه به یک id نیاز داریم در غیر اینصورت با خطای HTTP 404 (not found) روبرو خواهد شد.
اکنون میتوانید برنامه را اجرا کنید.

شما اولین نفری باشید که نظر میدهید

J4yw5r

آموزش ساخت صفحه Page Not Found (404) در Aspnet core -------- آموزش ایجاد Tag Helper سفارشی در Asp.net core -------- آموزش نحوه ایجاد Model برای دیتابیس موجود در Entity Framework Core -------- آموزش نحوه Upload و Download در Asp.net core 2 -------- آموزش dependency injection در Asp.net core 2 -------- آموزش تحت شبکه کردن برنامه های مبتنی بر c# در sql server -------- آموزش استفاده از Bundler & Minifier در Asp.Net Core -------- مروری بر Identity در Asp.net core2.1 (بخش دوم) -------- مروری بر Identity در Asp.net core2.1 (بخش اول) -------- آموزش مبحث Single Responsibility Principle (SRP) از بخش اصول طراحی شی گرا (SOLID) -------- آموزش publish کردن برنامه های Asp.net core بر روی سرور iis -------- پیاده سازی مسیریابی با استفاده از الگوریتم پیمایش اول سطح یا جستجوی اول سطح (BFS) در سی شارپ -------- آشنایی با SignalR در Asp.net core -------- آموزش استفاده از کلاس SeedData در Asp.net Core -------- قالب سایت فروشگاهی -------- آموزش ایجاد برنامه نصب (setup) قسمت سوم -------- آموزش ایجاد برنامه نصب (setup) قسمت دوم -------- آموزش ایجاد برنامه نصب (setup) قسمت اول -------- آموزش عملیات CRUD با استفاده از Ragor Pages در Asp.net Core2.0 -------- آموزش ثبت تصویر توسط دوربین در برنامه نویسی اندروید به زبان c#.net -------- حل مساله n وزیر با استفاده از الگوریتم ژنتیک و بصورت گرافیکی -------- آموزش نمایش تصویر loading در سمت client جهت بارگزاری صفحات با حجم زیاد از سرور در asp.net mvc -------- آموزش اعتبار سنجی غیر همزمان(AsyncValidation) با استفاده از جاوااسکریپت در Asp.net mvc -------- آموزش ایجاد breadcrumb با استفاده از sitemap در MVC -------- آموزش ایجاد برنامه چت دوطرفه با استفاده از Socket در سی شارپ -------- آموزش ارسال و دریافت فایل در برنامه تحت شبکه با استفاده ار سوکت (Socket) -------- آموزش رسم نمودار در Asp.net -------- آموزش ایجاد مگا منو -------- آموزش استفاده از Grid mvc در Asp.net mvc -------- پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش چهارم) -------- پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش سوم) -------- پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش دوم) -------- پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش اول) -------- بررسی نکات امنیتی در آپلود تصاویر -------- آموزش async - await در یک مثال عملی -------- قالب پنل ادمین -------- آموزش Repository pattern در Asp.net MVC -------- آموزش Serialize و Deserialize اطلاعات در قالب Json به زبان C#.net -------- آموزش ویرایش مطالب با استفاده از x-editable در Asp.net MVC -------- آموزش ایجاد آدرسهای کاربرپسند(user friendly URLs) در Asp.net MVC --------

ابتدای صفحه