توضیحات و دانلود

پیاده سازی عملکرد جستجو را در ASP.Net MVC
0 0
پیاده سازی عملکرد جستجو را در ASP.Net MVC

با سلام در این مقاله با یک مثال توضیح خواهیم داد که چگونه می توان عملکرد جستجو را با استفاده از Entity Framework در ASP.Net MVC 5 Razor پیاده سازی کرد.
عملکرد جستجو با استفاده از Stored Procedure اجرا می شود که با مقدار پارامتر با استفاده از Entity Framework در ASP.Net MVC 5 Razor فراخوانی می شود.
بانک اطلاعات
در اینجا از پایگاه داده Northwind استفاده می کنیم. شما می توانید آن را از اینجا دانلود کنید.
پایگاه داده Northwind را بارگیری و نصب کنید
Stored Procedure
شما باید  Stored Procedure زیر را در پایگاه داده Northwind ایجاد کنید. Stored Procedure  پارامتر ContactName را که برای انجام جستجو در سوابق موجود در جدول مشتریان استفاده می شود را می پذیرد.

CREATE PROCEDURE Customers_SearchCustomers
      @ContactName NVARCHAR(30)
AS
BEGIN
      SET NOCOUNT ON;
      SELECT *
      FROM Customers
      WHERE ContactName LIKE '%' + @ContactName + '%'
END

پیکربندی و اتصال Entity Framework به پایگاه داده
برای اتصال به پایگاه داده ، باید Entity Framework را پیکربندی کنید.
پس از پیکربندی Entity Framework ، قدم بعدی وارد کردن Stored Procedure در مدل Entity Framework است. برای انجام این کار ، باید بر روی Entity Model کلیک راست کرده و مطابق شکل زیر گزینه Update Model from Database را انتخاب کنید.

مرحله بالا Update Wizard را باز می کند که در آن شما باید Stored Procedure را انتخاب کرده و روی Finish کلیک کنید.

 

حال باید Stored Procedure را در Entity Framework وارد کنیم تا بتوان آن را به عنوان یک تابع با استفاده از Entity Framework قرار دهیم .
بنابراین  کلیک راست بر روی Entity Model ، کلیک بر روی Add و سپس بر روی عملکرد  کنید .

با این کار پنجره گفتگوی Add Function Import باز می شود. در اینجا ابتدا باید نام تابع را مشخص کنید که نام عملکردی است که برای فراخوانی Stored Procedure استفاده می شود و سپس Stored Procedure را که هنگام فراخوانی تابع اجرا می شود ، انتخاب می کنید.
نوع Return به عنوان شی انتخاب می شود که کلاس Customer Entity است.

Controller
اکنون Entity Framework پیکربندی شده است و از این رو اکنون می توانیم Controller ایجاد کرده و کدی بنویسیم تا سوابق جدول مشتریان در پایگاه داده Northwind را بارگیری کنیم .
Controller از دو روش تشکیل شده است.
روش انجام عملیات GET
در داخل روش Stored Procedure , Index با استفاده از عملکرد SearchCustomers ایجاد شده از روش SearchCustomers که قبلاً انجام شده است ، خوانده می شود.
پارامتر ContactName به صورت رشته خالی منتقل می شود و از این رو کلیه سوابق را از جدول Customers در پایگاه داده Northwind دریافت می کند.
سرانجام لیستی از نام تجاری مشتریان به View برگشت داده می شود.
روش انجام عملیات POST
با ارسال فرم ، مقدار Customer Name TextBox از این روش Action ارسال می شود و مقدار آن به عنوان پارامتر به تابع SearchCustomers منتقل و لیست افراد مشتری به View باز می گردد.

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        NorthwindEntities entities = new NorthwindEntities();
        return View(entities.SearchCustomers(""));
    }
 
    [HttpPost]
    public ActionResult Index(string customerName)
    {
        NorthwindEntities entities = new NorthwindEntities();
        return View(entities.SearchCustomers(customerName));
    }
}

View
در داخل View، در خط اول ، نهاد مشتری به عنوان IEnumerable اعلام می شود که مشخص می کند که آن به عنوان یک مجموعه در دسترس خواهد بود.
Viewشامل یک فرم HTML است که با استفاده از روش Html.BeginForm با پارامترهای زیر ایجاد شده است.
ActionName - نام عمل در این حالت  Index است.
ControllerName - نام Controller در این حالت Home است.
FormMethod - این روش فرم یعنی GET یا POST را مشخص می کند. در این حالت روی POST تنظیم می شود.
در داخل View، یک TextBox با استفاده از عملکرد Html.TextBox HTML Helper ایجاد می شود و یک دکمه ارسال وجود دارد که با کلیک بر روی آن ، فرم ارسال می شود.
برای نمایش سوابق از جدول HTML استفاده می شود. یک حلقه بر روی Model اجرا خواهد شد که ردیف های جدول HTML را با سوابق مشتری ایجاد می کند.

@model IEnumerable<Entity_Framework_Stored_Proc_MVC.Customer>
 
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width"/>
    <title>Index</title>
</head>
<body>
    @using (Html.BeginForm("Index", "Home", FormMethod.Post))
    {
        <span>Customer Name:</span> @Html.TextBox("CustomerName")
        <input type="submit" value="Search"/>
        <br/>
        <br/>
        <table cellpadding="0" cellspacing="0">
            <tr>
                <th>CustomerID</th>
                <th>ContactName</th>
                <th>City</th>
                <th>Country</th>
            </tr>
            @foreach (Customer customer in Model)
            {
                <tr>
                    <td>@customer.CustomerID</td>
                    <td>@customer.ContactName</td>
                    <td>@customer.City</td>
                    <td>@customer.Country</td>
                </tr>
            }
        </table>
    }
</body>
</html>

عکسهای صفحه

نمایش جدول همه سوابق

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :