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

نمایش داده ها در یک View از چند جدول با ASP.Net MVC
0 0
نمایش داده ها در یک View از چند جدول با ASP.Net MVC

با سلام  در این مقاله با مثال توضیح خواهیم داد که چگونه داده ها را در Single View از چندین جدول در ASP.Net MVC Razor نمایش دهیم.
به طور پیش فرض یک View می تواند تنها با یک Model مرتبط شود و از این رو در این مقاله نحوه نمایش داده ها در یک View از جداول چندگانه با استفاده از مدل های چندگانه در ASP.Net MVC Razor توضیح داده خواهد شد.
بانک اطلاعاتی
در اینجا از پایگاه Northwind استفاده می کنم. شما می توانید آن را از اینجا دانلود کنید.
پایگاه داده Northwind را دانلود و نصب کنید
فضاهای نام
شما باید فضای نامهای زیر را وارد کنید.

using System.Dynamic;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.Collections.Generic;

Model
در زیر دو کلاسModel است .

CustomerModel
کلاس Model زیر برای جمع آوری داده ها از جدول مشتری استفاده می شود.

public class CustomerModel
{
    public string CustomerId { get; set; }
    public string CustomerName { get; set; }
    public string City { get; set; }
    public string Country { get; set; }
}

EmployeeModel
کلاس Model زیر برای جمع آوری اطلاعات از جدول کارکنان استفاده می شود.

public class EmployeeModel
{
    public string EmployeeId { get; set; }
    public string EmployeeName { get; set; }
    public string City { get; set; }
    public string Country { get; set; }
}

Controller
Controller شامل یک روش Index Action است. در داخل این روش ، ابتدا یک شی از کلاس ExpandoObject ایجاد شده و آن instance به یک متغیر از نوع پویا اختصاص داده شده است.
توجه :

ExpandoObject برای اضافه کردن و حذف اشیاء به طور پویا در زمان اجرا اجازه می دهد . این عضو از فضای نام System.Dynamic است و دارای توانایی ذخیره اشیاء سلسله مراتبی پیچیده است.
سوابق مشتریان و کارکنان با استفاده از ADO.Net جمع آوری شده و با استفاده از مجموعه های عمومی از کلاس های Model مربوطه آنها بازگشت می شود.
مجموعه های بازگشتی به شیء کلاس ExpandoObject اضافه می شوند و سپس به View می فرستند.

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        dynamic model = new ExpandoObject();
        model.Customers = GetCustomers();
        model.Employees = GetEmployees();
        return View(model);
    }
 
    private static List<CustomerModel> GetCustomers()
    {
        List<CustomerModel> customers = new List<CustomerModel>();
        string query = "SELECT TOP 10 CustomerID, ContactName, City, Country FROM Customers";
        string constr = ConfigurationManager.ConnectionStrings["Constring"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand(query))
            {
                cmd.Connection = con;
                con.Open();
                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while (sdr.Read())
                    {
                        customers.Add(new CustomerModel
                        {
                            CustomerId = sdr["CustomerID"].ToString(),
                            CustomerName = sdr["ContactName"].ToString(),
                            City = sdr["City"].ToString(),
                            Country = sdr["Country"].ToString()
                        });
                    }
                }
                con.Close();
                return customers;
            }
        }
    }
 
    private static List<EmployeeModel> GetEmployees()
    {
        List<EmployeeModel> employees = new List<EmployeeModel>();
        string query = "SELECT EmployeeID, (FirstName + ' ' + LastName) [Name], City, Country FROM Employees";
        string constr = ConfigurationManager.ConnectionStrings["Constring"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand(query))
            {
                cmd.Connection = con;
                con.Open();
                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while (sdr.Read())
                    {
                        employees.Add(new EmployeeModel
                        {
                            EmployeeId = sdr["EmployeeID"].ToString(),
                            EmployeeName = sdr["Name"].ToString(),
                            City = sdr["City"].ToString(),
                            Country = sdr["Country"].ToString()
                        });
                    }
                    con.Close();
                    return employees;
                }
            }
        }
    }
}

View
در داخل View ، ابتدا باید فضای نامی را برای دسترسی به کلاسهای Model وارد کنید.
سپس شما باید Model را برای View به عنوان پویا اعلام کنید .
برای سوابق View ، دو جداول HTML مورد استفاده قرار می گیرند و با تکرار بر مجموعه های عمومی اشیاء Model، ردیف ها به جداول HTML اضافه می شوند.

@using Multiple_Model_MVC.Models
@model dynamic
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width"/>
    <title>Index</title>
</head>
<body>
    <table cellpadding="0" cellspacing="0">
        <tr>
            <th>CustomerID</th>
            <th>Contact Name</th>
            <th>City</th>
            <th>Country</th>
        </tr>
        @foreach (CustomerModel customer in Model.Customers)
        {
            <tr>
                <td>@customer.CustomerId</td>
                <td>@customer.CustomerName</td>
                <td>@customer.City</td>
                <td>@customer.Country</td>
            </tr>
        }
    </table>
    <hr/>
    <table cellpadding="0" cellspacing="0">
        <tr>
            <th>EmployeeID</th>
            <th>Employee Name</th>
            <th>City</th>
            <th>Country</th>
        </tr>
        @foreach (EmployeeModel employee in Model.Employees)
        {
            <tr>
                <td>@employee.EmployeeId</td>
                <td>@employee.EmployeeName</td>
                <td>@employee.City</td>
                <td>@employee.Country</td>
            </tr>
        }
    </table>
</body>
</html>

عکس روی صفحه

 


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

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