مقایسه Strongly Typed View با Dynamically Typed View در MVC

در این مقاله، می خواهیم شما را با تفاوتهای میان View از نوع Strongly Typed و View از نوع Dynamically Typed در MVC آشنا کنیم.

 مقایسه Strongly Typed View با Dynamically Typed View در MVC

Dynamic Typed View :

یک برنامه جدید تحت وب در ویژوال استودیو ایجاد کنید.

در قسمت مربوط به Template گزینه ی Empty MVC را انتخاب کنید و روی دکمه OK کلیک کنید.

بر روی فولدر Models راست کلیک کنید و یک کلاس با نام Employee Entity در مدل ایجاد کنید.

کد مربوط به Employee.cs :

1.	public class Employee  
2.	{  
3.	    public int ID  
4.	    {  
5.	        get;  
6.	        set;  
7.	    }  
8.	    public string Name   
9.	    {  
10.	        get;  
11.	        set;  
12.	    }  
13.	    public string Designation  
14.	    {  
15.	        get;  
16.	        set;  
17.	    }  
18.	}  

روی فولدر کنترلر (controller) راست کلیک کنید و یک New empty controller به پروژه اضافه کنید و به آن یک نام دلخواه بدهید.

حال یک view برای Index Action method مربوط به DynamicController ایجاد میکنیم. گزینه ی Empty Template(without model) برای ایجاد یک View داینامیک انتخاب میکنیم.

گزینه ی پیش فرض در property مربوط به Viewها داینامیک است و این بدان معنی است که ما میتوانیم به مقادیر مدل، بدون آگاهی از نوع آن دسترسی داشته باشیم. همچنین میتوانیم با استفاده از کلمه کلیدی @model ، View مربوطه را داینامیک کنیم. بدلیل اینکه ما در حال استفاده از یک View داینامیک هستیم Intelligence ویژوال استودیو به ما کمکی نخواهد کرد و عبارات داینامیک در لحظه حل خواهند شد. اگر ما از property در View استفاده کنیم که در مدل وجود نداشته باشد در زمان اجرا با exception روبرو خواهیم شد.

پروژه را Build کنید و سپس از آن اجرا بگیرید.

Strongly Typed View

در این قسمت میخواهیم یک کنترلر دیگر با نام StronglyTypedController  ایجاد کنیم و همان کدهایی که در Index action method برای StronglyTypedController نوشتیم را به این قسمت اضافه کنیم.

1.	public class StronglyTypedController : Controller    
2.	{    
3.	        public ActionResult Index()    
4.	        {    
5.	            Employee employee = new Employee()    
6.	            {    
7.	                ID = 101,    
8.	                Name = "Anoop Kumar Sharma",    
9.	                Designation = "Software Engineer"    
10.	            };    
11.	            //Passing the Employee obj to View    
12.	            return View(employee);    
13.	        }    
14.	}    

یک View با مشخصات زیر به این action method ایجاد میکنیم.

در قسمت Model class گزینه ی Employee را از drop-down انتخاب میکنیم تا یک strongly-typed view ایجاد کنیم. قبل از کامپایل پروژه، اطمینان حاصل کنید که گزینه ی ذکر شده را برای کلاس مدل انتخاب کرده ­اید .

یک view برای Index action method در StronglyTypedController ایجاد میکنیم.

 @model DynamicVsStronglyTypedView.Models.Employeeنوع داده مدل را مشخص میکند. @Model و @model مشابه یکدیگر هستند ولی در عمل کاربرد متفاوتی دارند. @Model یک property از view است که به یک مدل ارجاع داده میشود که از کنترلر به view انتقال داده شده است. در strongly-typed view از Intelligence و تست برنامه در هنگام کامپایل نیز پشتیبانی میشود.

پروژه را Build کنید و سپس از آن اجرا بگیرید.

امیدواریم که مطالب این مقاله برای شما مفید بوده باشد.

آموزش asp.net mvc

فایل های ضمیمه
دانلود نسخه ی PDF این مطلب