آموزش طراحی سایتنکات و ترفندهای Asp.Net MVC

ویرایش ، حذف و درج اطلاعات در sql server در ASP.NET MVC

با سلام خدمت همراهان سایت میزفا ، با یکی دیگر از مقالات آموزشی ASP.NET MVC در خدمت شما هستم. در این مقاله آموزشی قصد داریم نحوه ارتباط با بانک اطلاعاتی SQL SERVER برای درج اطلاعات ، ویرایش اطلاعات و حذف اطلاعات از دیتابیس را به شما آموزش دهم.

Insert ، Update ، Delete کردن اطلاعات در بانک اطلاعاتی SQL SERVER در ASP.NET MVC

این مقاله آموزشی را با یک مثال به پیش می بریم فرض کنید که میخواهیم اطلاعات دانش آموزان یک مدرسه را در بانک اطلاعاتی SQL SERVER ذخیره کنیم ابتدا باید یک مدل برای این پروژه تعریف کنیم.

ایجاد Model پروژه

در پوشه Models ، یک کلاس به نام StudentDB ، ویا نام دلخواه خودتان ایجاد کنید سپس فیلدهای جدول Student را درون کلاس مدل تعریف میکنیم به صورت زیر:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace StudentsProject.Models
{
    public class Student
    {
        [Key]
        public int ID { get; set; }

        [Display(Name ="نام")]
        public string Name { get; set;}

        [Display(Name = "نام خانوادگی")]
        public string Family { get; set;}

        [Display(Name = "کدملی")]
        public string NationalNo { get; set;}

        [Display(Name = "نام پدر")]
        public string FatherName { get; set;}

        [Display(Name = "شماره تماس")]
        public string Tell { get; set;}

        [Display(Name = "آدرس")]
        public string Address { get; set;}

    }
}

ایجاد کلاس Context

حال باید یک کلاس Context برای مدل خود ایجاد کنید برای این منظور بر روی پوشهی Models راست کلیک کرده و سپس گزینه Add و پس از آن Class را انتخاب کنید من نام کلاس Context را StudentDbContext.cs قرار می دهم. محتوای کلاس Context را به صورت زیر ویرایش کنید:

سورس کد کلاس StudentDbContext.cs

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace StudentsProject.Models
{
    public class StudentDBContext : DbContext
    {
        public StudentDBContext() : base("name=StudentDBContext")
        {
        }

        public System.Data.Entity.DbSet<StudentsProject.Models.Student> Students { get; set; }
    }
}

تنظیم ConnectionString

حالا فایل Web.config را باز کرده و کد زیر را بین تگ آغازی <configuration> و تگ پایانی <configuration/> اضافه کنید.

 <connectionStrings>
    <add name="StudentDBContext" connectionString="Data Source=(local); Initial Catalog=StudentDB; Integrated Security=True; MultipleActiveResultSets=True; " providerName="System.Data.SqlClient" />
</connectionStrings>

فعال کردن Migrations و آپدیت کردن دیتابیس

حالا نوبت به آپدیت کردن دیتابیس می‌رسد اما قبل از آپدیت کردن حتما باید Migrations را فعال کنید برای این منظور از منوی بالای Visual Studio ، از قسمت Tools -> NuGet Package Manager ، گزینه Package Manager Console را انتخاب کنید. سپس در محیط Package Manager Console دستور زیر را تایپ کرده و سپس اجرا کنید.

Enable-Migrations -ContextTypeName StudentsProject.Models.StudentDBContext

پس از اجرای دستور بالا یک پوشه به نام Migrations به پروژه شما افزوده می شود از داخل پوشه Migrations فایل Configuration.cs را باز کرده و مقدار  AutomaticMigrationsEnabled را برابر true قرار دهید. سپس تغییرات فایل را ذخیره کنید.

حالا برای آپدیت کردن و یا ایجاد دیتابیس دستور زیر را در محیط Package Manager Console اجرا کنید:

 update-database

حالا دیتابیس sql server را باز کنید همان طور که می بینید دیتابیس StudentDB برای شما ایجاد شده است.

ایجاد کنترلر Home

حال یک کنترلر به نام دلخواه به پروژه خود اضافه نمایید من نام Controller خودم را Home قرار می‌دهم. در این کنترلر قرار است اکشن متدهای مربوط به حذف اطلاعات ، ویرایش و درج اطلاعات در دیتابیس را تعریف کنیم.

افزودن اکشن متد Index برای نمایش اطلاعات دانش آموزان در یک جدول

درون کنترلر Home ، یک اکشن متد به نام Index برای دریافت اطلاعات همه دانش آموزان از دیتابیس تعریف کنید در این اکشن متد اطلاعات دانش آموزان را با با کوئری LINQ از بانک اطلاعاتی دریافت میکنیم.

سورس کد اکشن متد Index

using StudentsProject.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace StudentsProject.Controllers
{
    public class HomeController : Controller
    {
        private StudentDBContext db = new StudentDBContext();

        public ActionResult Index()
        {
            var StudentInfo = (from s in db.Students select s).ToList();
            return View(StudentInfo);
        }
    }
}

حال یک View برای اکشن متد Index به پروژه اضافه کنید. برای این منظور بر روی اکشن متد Index راست کلیک کرده و سپس Add View را انتخاب کنید.

سورس کد ویوی Index

@model IEnumerable<StudentsProject.Models.Student>
@{
    ViewBag.Title = "Index";
    Layout = null;
}
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<div style="direction:rtl !important;margin:40px auto;width:70%">
    <table class="table table-bordered table-hover">
        <thead>
            <tr>
                <th class="text-right">نام</th>
                <th class="text-right">نام خانوادگی</th>
                <th class="text-right">کدملی</th>
                <th class="text-right">نام پدر</th>
                <th class="text-right">شماره تماس</th>
                <th class="text-right">آدرس</th>
                <th class="text-right">ویرایش</th>
                <th class="text-right">حذف</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                @foreach (var item in Model)
                {
                    <td>@item.Name</td>
                    <td>@item.Family</td>
                    <td>@item.NationalNo</td>
                    <td>@item.FatherName</td>
                    <td>@item.Tell</td>
                    <td>@item.Address</td>
                    <td>
                        @using (Html.BeginForm("Edit", "Home", FormMethod.Post))
                        {
                            @Html.AntiForgeryToken()
                            <input type="hidden" name="ID" value="@item.ID" />
                            <button class="btn btn-link" type="submit">ویرایش</button>
                        }

                    </td>
                    <td>
                        @using (Html.BeginForm("Delete", "Home", FormMethod.Post))
                        {
                            @Html.AntiForgeryToken()
                            <input type="hidden" name="ID" value="@item.ID" />
                            <button class="btn btn-link" type="submit">حذف</button>
                        }

                    </td>
                }
            </tr>
        </tbody>
    </table>
</div>


افزودن اکشن متد Create و SubmitCreate برای درج اطلاعات دانش آموزان در دیتابیس

درون کنترلر Home ، یک اکشن متد به نام Create برای نمایش فرم ورود اطلاعات و یک اکشن متد به نام SubmitCreate برای دریافت اطلاعات فرم و درج اطلاعات در دیتابیس تعریف کنید.

سورس کد اکشن متد Create و SubmitCreate

using StudentsProject.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace StudentsProject.Controllers
{
    public class HomeController : Controller
    {
        private StudentDBContext db = new StudentDBContext();

        public ActionResult Create()
        {
            return View();
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult SubmitCreate(Student model)
        {
            if (ModelState.IsValid)
            {
                Student Student = new Student()
                {
                    Name = model.Name,
                    Family = model.Family,
                    NationalNo = model.NationalNo,
                    FatherName = model.FatherName,
                    Tell = model.Tell,
                    Address = model.Address,
                };
                db.Students.Add(Student);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View("Create",model);
        }
    }
}

حالا یک ویو برای اکشن متد Create به پروژه اضافه نمایید این View فرم ثبت نام را به ما نمایش می دهد. سورس کد ویوی Create به صورت زیر است :

سورس کد ویویCreate

@model StudentsProject.Models.Student
@{
    ViewBag.Title = "Create";
    Layout = null;
}
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<div style="direction:rtl !important;margin:40px auto;width:70%">
    @using (Html.BeginForm("SubmitCreate", "Home", FormMethod.Post))
    {
        @Html.AntiForgeryToken()
          <div class="form-horizontal">
            <h4>فرم ثبت نام دانش آموز</h4>
            <hr />
            @Html.ValidationSummary(true, "", new { @class = "text-danger" })
            <div class="form-group">
                @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Family, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Family, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Family, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.NationalNo, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.NationalNo, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.NationalNo, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.FatherName, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.FatherName, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.FatherName, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Tell, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Tell, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Tell, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                <div class="col-md-12">
                    <input type="submit" value="ثبت نام" class="btn btn-primary pull-left" />
                </div>
            </div>
        </div>
    }

</div>

افزودن اکشن متد Edit و SubmitEdit برای درج اطلاعات دانش آموزان در دیتابیس

حالا درون کنترلر Home ، یک اکشن متد به نام Edit برای نمایش اطلاعات دانش آموز در حالت ویرایش و یک اکشن متد به نام SubmitEdit برای آپدیت کردن یا ویرایش اطلاعات دانش آموز تعریف کنید.

سورس کد اکشن متد Edit و SubmitEdit

using StudentsProject.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace StudentsProject.Controllers
{
    public class HomeController : Controller
    {
        private StudentDBContext db = new StudentDBContext();

        public ActionResult Edit(int ID)
        {
            var StudentInfo = (from s in db.Students where (s.ID == ID) select s).First();
            return View(StudentInfo);
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult SubmitEdit(Student model)
        {
            var StudentInfo = (from s in db.Students where (s.ID == model.ID) select s).First();
            StudentInfo.Name = model.Name;
            StudentInfo.Family = model.Family;
            StudentInfo.NationalNo = model.NationalNo;
            StudentInfo.FatherName = model.FatherName;
            StudentInfo.Tell = model.Tell;
            StudentInfo.Address = model.Address;
            db.SaveChanges();

            Index();
            return View("Index");
        }
    }
}

حال یک ویو برای اکشن متد Edit به پروژه خود اضافه کنید سورس کد این View به صورت زیر است:

سورس کد ویوی Edit

@model StudentsProject.Models.Student
@{
    ViewBag.Title = "Edit";
    Layout = null;
}
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<div style="direction:rtl !important;margin:40px auto;width:70%">
    @using (Html.BeginForm("SubmitEdit", "Home", FormMethod.Post))
    {
        @Html.AntiForgeryToken()
        <div class="form-horizontal">
            <h4>ویرایش اطلاعات دانش آموز</h4>
            <hr />
            @Html.ValidationSummary(true, "", new { @class = "text-danger" })
            @Html.HiddenFor(model => model.ID)
            <div class="form-group">
                @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Family, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Family, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Family, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.NationalNo, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.NationalNo, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.NationalNo, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.FatherName, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.FatherName, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.FatherName, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Tell, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Tell, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Tell, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                <div class="col-md-12">
                    <input type="submit" value="ذخیره تغییرات" class="btn btn-primary pull-left" />
                </div>
            </div>
        </div>
    }

</div>

افزودن اکشن متد Delete و SubmitDelete برای حذف اطلاعات دانش آموزان از دیتابیس

در کنترلر Home ، یک اکشن متد به نام Delete برای نمایش پیغام حذف اطلاعات و یک اکشن متد به نام SubmitDelete برای حذف اطلاعات دانش آموز تعریف کنید.

سورس کد اکشن متد Delete و SubmitDelete

using StudentsProject.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace StudentsProject.Controllers
{
    public class HomeController : Controller
    {
        private StudentDBContext db = new StudentDBContext();

        public ActionResult Delete(int ID)
        {
            ViewBag.ID = ID;
            return View();
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult SubmitDelete(int ID)
        {
            var StudentInfo = (from s in db.Students where (s.ID == ID) select s).First();
            db.Students.Remove(StudentInfo);
            db.SaveChanges();

            Index();
            return View("Index");
        }
    }
}

 سورس کد ویوی Delete

@{
    ViewBag.Title = "Delete";
    Layout = null;
}

<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<link href="~/Content/Site.css" rel="stylesheet" />
<div style="direction:rtl !important;margin:40px auto;width:50%"  class="alert alert-warning">
    <p>آیا در مورد حذف اطلاعات این دانش آموزاطمینان دارید ؟</p>
    @using (Html.BeginForm("SubmitDelete", "Home", FormMethod.Post))
    {
        @Html.AntiForgeryToken()
        <div class="form-group">
            <input type="hidden" value="@ViewBag.ID" name="ID" />
        </div>
        <div class="form-actions no-color">
            <a href="/Home/Index" class="btn btn-default pull-left" data-dismiss="modal">خیر</a>
            <input type="submit" value="بله" class="btn btn-danger pull-left" />
            <div style="clear:both"></div>
        </div>
    }
</div>

بسیار خب به پایان این مقاله آموزشی ASP.NET MVC رسیدیم در صورتی که پیرامون این مقاله آموزشی سوالی داشتید حتما در قسمت نظرات مطرح کنید.

 

برچسب ها

آرزو ابراهیمی

بیش از 4 سال است که زمینه طراحی و توسعه سایت فعالیت می‌کنم، طراح و برنامه نویس انواع سامانه‌های تخصصی پزشکی، مناقصات، فروشگاهی و ... بودم و هستم و هدفم در سایت میزفا ارائه اطلاعات بروز و ناب در زمینه طراحی سایت است. تا از این طریق بتونم تجربیات و دانسته های خودم را با تمامی علاقمندان به مباحث طراحی سایت به اشتراک بزارم .

‫29 نظر داریم، تو هم نظر بذار، پاسخ کامل میدیم :)

  1. سلام خسته نباشید
    توی قسمت edit وقتی میخواهیم edit کنیم چجوری باید موقع زدن دکمه edit تموم اون فیلد هایی که اطلاعات هست بره مستقیم توی اون فیلدهایی خودشون قرار بگیرن برای ویرایش یعنی موقع زدن دکمه ویرایش فیلدها خالی نباشه داخلشون اطلاعات اون مطلبی باشه که میخواهیم ویرایشش کنیم.؟؟

    1. سلام
      شما داخل اکشن متد می تونید model و یا View Model خودتون رو مقداردهی کنید به عنوان مثال اطلاعات کتاب رو می خواهید به View ارسال کنید یک نمونه از model تعریف کرده و سپس پراپرتی های model رو مقداردهی کنید و درنهایت model به View ارسال کنید اونوفت اطلاعات شما در حالت ویراش قابل مشاهده هست.

  2. سلام
    من میخوام یک قسمت سرچ اطلاعات که به صورت Ajax هست اضافه کنم به این مثال .
    از ویو مدل استفاده کردم و پارشیال ویو هم اوکی هست .
    ولی وقتی پارشیال ویو رو پاس میدم
    The model item passed into the ViewDataDictionary is of type ‘System.Collections.Generic.List`1[Student.Models.StudentDB]’, but this ViewDataDictionary instance requires a model item of type ‘Student.Models.ViewModels.SearchViewModels’.
    با این خطا مواجه میشم که منطقی هم هست! ولی نمیدونم باید چکار انجام بدم
    ممنون میشم راهنمایی کنید …

    1. سلام دلیل این خطا به این خاطر هست که مدل یا ویو مدل View و Partial View یکسان نیست شما می تونید Model یا ViewModel مورد نیاز Partial View را از داخل View به آن پاس دهید .

  3. سلام. برای من تو کلاس StudentDbContext.cs دستور DbContext رو خطا میده چیکار کنم؟

    1. سلام احتمالا namespace مربوط به کلاس DbContext رو به پروژتون اضافه نکردید.

  4. سلام . متاسفانه تو پروژه ای که من ایجاد میکنم webconfig نداره . و همچنین تو کلاس StudentDbContext.cs زیر DbContext خط قرمز میکشه و خطا میده . ممنون میشم راهنمایی کنید. با تشکر.

    1. سلام … شما پروژتون رو از نوع ASP.NET MVC ایجاد کردید؟ چون پروژتون باید فایل Web.config رو داشته باشه مگر اینکه پروژه ی شما از نوع ASP.NET Core باشه که کلا فایل Web.config رو نداره و باید Connection String رو توی فایل appsettings.json ایجاد کنید.

        1. سلام. نوع پروژه ای که من تعریف کردم، از نوع :
          ASP.NET WEB APPLICATION (.NET CORE)
          من تو این مورد چطور تغییرات داده ها در ارتباط با SQL رو انجام بدم؟ ممنون میشم راه نمایی کنید منو . با تشکر از شما خانم ابراهیمی.

          1. سلام … در پروژه های ASP.NET Core برای ارتباط با بانک اطلاعاتی و انجام عملیات CRUD ، از Entity Framework Core استفاده کنید. برای افزودن EF Core به پروژه می توانید از مقاله افزودن EF Core به پروژه استفاده کنید.

  5. سلام
    مثالی که شما مطرح کردید اگه اشتباه نکنم از نوع کد فرست هست، کاشکی یک نمونه از همین مثال رو از نوع مدل فرست می گفتین چون راجب مدل فرست خیلی مطلب کم هست و من به شدت به اون احتیاج دارم

    1. با سلام … بله در این روش از CodeFirst استفاده کردیم … سعی میکنم در مقالات آتی این مورد رو هم آموزش بدم … موفق باشید.

  6. حالا برای آپدیت کردن و یا ایجاد دیتابیس دستور زیر را در محیط اجرا کنید:

    update-database در كدام محيط دقيقا اين دستور بايد بنويسم ؟

    1. با سلام … در محیط Package Manager Console این دستور را تایپ کنید.

    1. با سلام برای این مقاله فیلم آموزشی تهیه نشده است ،با مطالعه دقیق این مقاله به راحتی می تونید عملیات درج ، حذف ، ویرایش و … را انجام بدید.

  7. سلام خسته نباشید. آیا امکانش هست به این پروژه یه آموزش دیگه هم اضافه کنید!؟ یه جدول شهر اضافه بشه و با استفاده از dropdownlist موقع درج رکورد مشخص بشه که هر دانش آموز متعلق به کدام شهر هست

    1. سلام … در حال حاضر فرصتی برای انتشار مقاله جدید ندارم در آینده حتما یک مقاله آموزشی در این باره منتشر خواهم شد .

  8. سلام
    ممنن از مطلب خوبتون.
    فقط دیالوگ ها برای من کار نمی کنن. همه فرمها تو یک صفحه جدا باز میوند.
    این مثال میشه برای دانلود بزارید تا فایلهای .js هم همراهش دانلود کنیم و دیالوگ ها کار کنن؟

    1. سلام … خواهش میکنم … منظورتون از دیالوگ ها رو متوجه نشدم !!! … در ضمن من از فایل js استفاده نکردم … منظورتون استفاده از ajax برای عملیات درج و حذف و ویرایش هست ؟ که عملیات در یک صفحه انجام بشه ؟

      1. سلام. نه منظورم اینه که مثلا وقتی دکمه حذف را می زنیم باید یه پنجره روی صفحه اصلی باز بشه که پیفام حذف را بده . یا برای درج و ویرایش هم همینطور. ولی باری من پنجره جدا باز نمیشه. میره به یک صفحه دیگه و برای برگشت به صفحه اصلی باید back بزنم.

        1. با سلام منظور شما استفاده از ajax هست . من یک نمونه کد برای شما قرار میدم که وقتی روی دکمه حذف می زنید یک Modal در صفحه باز میشه و در صورتی که کاربر بر روی دکمه بله کلیک کنه عملیات حذف انجام میشه امیدوارم که به دردتون بخوره.

          کد اکشن متد Delete

            public ActionResult Delete(string id)
                  {
                      ViewBag.id = id;
                      return PartialView();
                  }
          

          کد Partial View مربوط به اکشن متد Delete

          <div>آیا در مورد حذف این اطلاعات اطمینان دارید ؟</div>
          @using (Html.BeginForm("SubmitDelete", "Home", FormMethod.Post))
          {
                @Html.AntiForgeryToken()
                <div class="form-group">
                <input type="hidden" value="@ViewBag.id" name="id" />
                </div>
                <div class="form-actions no-color body-footer footer-content">
                <button type="button" class="btn btn-primary pull-right" data-dismiss="modal">خیر</button>
                <input type="submit" value="بله" class="btn btn-danger pull-right  margin-right-10" />
                <div style="clear:both"></div>
                </div>
          }
          

          کد ajax برای نمایش Modal در صفحه (از Modal های بوت استرپ در صفحه استفاده کنید)

          function Delete(id) {
                  $.ajax({
                      url: "Delete/"+id,
                      type: "post",
                      data: {},
                  }).done(function (result) {
                      $('#myModal').modal('show');
                      $('#modal-title').html('حذف اطلاعات');
                      $('.modal-body').html(result);
                  });
              }
          
          1. خیلی خیلی ممنونم از اینکه وقت میزارید و پاسخ میدید.

  9. با عرض سلام
    از مطالب مفیدتون بسیار سپاسگزارم
    نیاز به آموزش MVC بصورت آنلاین(مثلا اسکایپ دارم)
    خواهشمندم در این زمینه من را راهنمایی بفرمایید.
    با تشکر فراوان

    1. سلام … متشکرم … من فعلا فرصتی برای تدریس MVC به صورت خصوصی ندارم … می تونید برای یادگیری از ویدیوهای آموزشی MVC سایت های معتبر استفاده کنید… موفق باشید.

پاسخی بگذارید

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

دکمه بازگشت به بالا
سایت خود را در گوگل مدیریت کنید + ۱۵ ساعت فیلم آموزشیجزئیات بیشتر اینجا کلیک کنید
بستن
با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
ترک میزفا خوب نیست!
دوره سئو، رایگان شد.
یک چیز متفاوت تجربه کنید
کاراکتر اشاره گر
دوره سئو، رایگان شد.
یک چیز متفاوت تجربه کنید
کاراکتر اشاره گر