ویوها (Views) در asp.net mvc

همانطور که در بخش های قبلی توضیح داده شد، View ها در اصل صفحات نمایشی می باشند که اطلاعات را از Controller دریافت کرده و در فرمت دلخواه به کاربر نمایش داده می شود. ساختار View ها همانند صفحات HTML می باشد با این تفاوت که می توانید از دستورات برنامه نویسی و Model ها نیز استفاده نمایید.

نحوه استفاده

هنگامی که قصد داشته باشید اطلاعات ارسالی توسط Controller را در یک View نمایش دهید، ابتدا باید نوع اطلاعات دریافتی توسط View مشخص گردد.

روی اکشن Index موجود در کنترلر Categories کلیک راست کرده و یک View برای آن بسازید.

اضافه کردن View به کنترلر

مشاهده می کنید که همانند مقاله قبلی، یک پوشه با نام Controller مورد نظر در بخش Views ایجاد و View مورد نظر درون آن قرار می گیرد.

در View ها برای استفاده از دستورات سی شارپ از علامت @ استفاده می شود و اگر دستورات بیش از یک خط باشند می بایست بین علامت های { } قرار بگیرند:

@{
    ViewBag.Title = "Index";
}

پس از ایجاد View می بایست نوع اطلاعات دریافتی را مشخص نماییم بنابراین کدهای زیر را به ابتدای کدهای View اضافه کنید.

@model List<Example02.Models.Category>

با استفاده از عبارت کلیدی @model تعیین می نماییم که قصد داریم از یک Model استفاده نماییم و نوع این Model نیز لیستی از Category ها می باشد.

نکته: نوع اطلاعات ارسال شده به View توسط Controller و نوع اطلاعات دریافتی که همانند مثال فوق تعیین می شود، حتما باید یکسان باشند وگرنه با خطا مواجه خواهید شد.

حال می توانید در View از اطلاعات دریافت شده استفاده نمایید. از آنجا که اطلاعات لیستی از Category ها می باشند می توانید با استفاده از حلقه foreach آنها را در یک جدول نمایش دهید. بنابراین ابتدا باید یک جدول با عناوین مورد نیاز ایجاد کنید.

@model List<Example02.Models.Category>
@{
    ViewBag.Title = "Index";
}

<h3>Category List</h3>

<table class="table table-bordered">
    <tr>
        <th>
            ID
        </th>
        <th>
            Categroy Name
        </th>
        <th>
            Description
        </th>
    </tr>
</table>

و در ادامه برای نمایش اطلاعات یک حلقه foreach تعریف کرده و به ازای هر Category یک ردیف جدید به جدول اضافه کنید.

@model List<Example02.Models.Category>
@{
    ViewBag.Title = "Index";
}

<h3>Category List</h3>

<table class="table table-bordered">
    <tr>
        <th>
            ID
        </th>
        <th>
            Categroy Name
        </th>
        <th>
            Description
        </th>
    </tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item.Id</td>
            <td>@item.CategoryName</td>
            <td>@item.Description</td>
        </tr>
    }
</table>

در حلقه foreach متغیری به نام item تعریف شده است که وظیفه پیمایش درون Model را دارد. Model یک کلمه کلیدی می باشد که همواره به اطلاعات دریافت شده توسط View اشاره می کند که در این مثال لیستی از Category ها می باشد. بنابراین در هر مرحله item به یکی از Category ها اشاره می کند و درون بدنه حلقه نیز آنها را در قالب یک ردیف از جدول نمایش می دهد.

نکته: هنگام تعریف نوع اطلاعات دریافتی از @model و هنگام استفاده از اطلاعات دریافت شده از کلمه کلیدی Model استفاده می شود که به بزرگی و کوچکی حروف باید دقت داشته باشید.

نتیجه اجرای این مثال به شکل زیر خواهد بود.

اجرای اولین View