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

سه راه برای انتقال اطلاعات از کنترل کننده به ویو در ASP.NET MVC 3 وجود دارد.

۱٫      به عنوان یک آبجکت مدل تایپ شده

۲٫      به عنوان یک مدل دینامیک (استفاده از مدل دینامیک @)

۳٫      استفاده از ViewBag

من یک برنامه ی ساده ی MVC 3 Top برای مقایسه و مقابل هم قرار دادن دو روش اول نوشته ام. کنترل کننده با یک لیست ساده از بلاگ ها شروع می کند.

using System.Collections.Generic;‎
using System.Web.Mvc;‎
namespace Mvc3ViewDemo.Controllers {‎
‎    public class Blog {‎
‎        public string Name;‎
‎        public string URL;‎
‎    }‎
‎    public class HomeController : Controller {‎
‎        List<Blog> topBlogs = new List<Blog>‎
‎      { ‎
‎          new Blog { Name = “ScottGu”, URL = ‎‎”http://tahlildadeh.com/scottgu/”},‎
‎          new Blog { Name = “Scott Hanselman”, URL = ‎‎”http://www.hanselman.com/blog/”},‎
‎          new Blog { Name = “Jon Galloway”, URL = ‎‎”http://www.asp.net/mvc”}‎
‎      };‎
‎        public ActionResult IndexNotStonglyTyped() {‎
‎            return View(topBlogs);‎
‎        }‎
‎        public ActionResult About() {‎
‎            ViewBag.Message = “Welcome to ASP.NET MVC!”;‎
‎            return View();‎
‎        }‎
‎    }‎
‎}‎

روی روش IndexNotStonglyTyped()  کلیک راست کرده و یک ویو Razor اضافه کنید.

clip_image001[6]

مطمئن شوید که باکس Create a strongly-typed view  تیک نخورده است. ویو نتیجه حاوی چیز زیادی نمی باشد.

@{‎
‎    ViewBag.Title = “IndexNotStonglyTyped”;‎
‎}‎
‎<h2>IndexNotStonglyTyped</h2>‎
On the first line of the Views\Home\IndexNotStonglyTyped.cshtml file, ‎add the model directive and the dynamic keyword.‎

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

@model dynamic

@{‎

‎    ViewBag.Title = “IndexNotStonglyTyped”;‎

‎}‎

‎<h2>Index Not Stongly Typed</h2>‎

‎<p>

‎    <ul>

‎        @foreach (var blog in Model) {‎

<li>

‎            <a href=”@blog.URL”>@blog.Name</a>‎

</li>‎

‎        }‎

</ul>‎

</p>‎

اکنون ما یک ویو strongly typed اضافه می کنیم. کد زیر را به کنترل کننده اضافه کنید.

clip_image002[6]

public ActionResult StonglyTypedIndex() ‎
‎{‎
‎    return View(topBlogs);‎
‎}‎

توجه داشته باشید که این دقیقا همان گزارش  View(topBlogs)می باشد، به عنوان یک ویو non-strongly typed فرابخوانید. در داخل ofStonglyTypedIndex()  کلیک راست کرده و  Add Viewرا انتخاب کنید. این بار گروه مدل Blog را انتخاب کرده و List را به عنوان یک الگوی مبنا انتخاب کنید.

در داخل الگوی ویو جدید، پشتیبانی  intellisenseرا دریافت می کنی
خوب باشید..