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

شباهتها و تفاوتهای ViewData ، ViewBag و TempData با مثال در ASP.NET MVC
0 0
شباهتها و تفاوتهای ViewData ، ViewBag و TempData با مثال در ASP.NET MVC

در این مقاله با مثال، شباهت ها و تفاوت های ViewData، ViewBag و TempData در ASP.Net MVC توضیح خواهم داد.

ViewData، ViewBag و TempData برای انتقال داده ها و اشیاء بین Controller و View در ASP.Net MVC استفاده می شود.

1- ViewData  

1- ViewData یك نوع دیكشنری ویژه است كه از ViewDataDictionary ارث بری كرده است.

2-  برای ارسال اطلاعات از controller به view استفاده می‌شود.

3- مدت زمان اعتبار مقادیر آن تنها در request جاری است.

4- اگر redirect بین صفحات رخ دهد، مقدار آن null خواهد شد.

5-به دلایل امنیتی باید قبل از استفاده، null بودن آن تست شود.

6-برای بهره برداری باید cast صورت پذیرد.

در مثال زیر، مقدار رشته ای در شی ViewData در Controller قرار داده شده و سپس در View نمایش داده می شود.

Controller

public class DefaultController : Controller
    {
        public ActionResult Index()
        {
            ViewData["Message"] = "به سایت استور پراجكت خوش آمدید";
            return View();
        }
    }

View

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        @ViewData["Message"]
    </div>
</body>
</html>

2-ViewBag

1- یك نوع dynamic است (این نوع در c# 4 معرفی شده است).

2-مانند ViewData برای ارسال اطلاعات از كنترلر به view استفاده می‌شود.

3- مدت زمان اعتبار مقادیر آن تنها در request جاری است.

4-اگر redirect بین صفحات رخ دهد، مقدار آن null خواهد شد.

5- به دلایل امنیتی باید قبل از استفاده، null بودن آن تست شود.

6- برای بهره برداری، cast نیاز نیست. بنابراین سریعتر عمل می‌كند.

در مثال زیر، مقدار رشته ای در شی ViewBag در Controller قرار داده شده و سپس در View نمایش داده می شود.

Controller

public class DefaultController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message  = "به سایت استور پراجكت خوش آمدید";
            return View();
        }
    }

View

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        @ViewBag.Messag
 
    </div>
</body>
</html>

3- TempData

1- نوع خاصی از دیكشنری است كه از TempDataDictionary مشتق شده است.

2- مدت عمر كوتاهی دارد و برای ارسال اطلاعات بین صفحات (در redirect) قابل استفاده است.

3-وقتی view‌ها به صورت كامل اجرا شود، مقادیر آن null می‌شود.

4- به دلایل امنیتی باید قبل از استفاده، null بودن آن تست شود.

5-برای بهره برداری باید cast صورت پذیرد.

در مثال زیر، مقدار رشته ای در شی TempData در Controller تنظیم شده و به  Controller دیگری هدایت می شود و در نهایت نمایش داده می شود.

 Controller اول

public class FirstController : Controller
    {
        // GET: First
        public ActionResult Index()
        {
            TempData["Message"] = "به سایت استور پراجكت خوش آمدید";
            return new RedirectResult(@"~\Second\");
        }
    }

 Controller دوم

public class SecondController : Controller
    {
        // GET: Second
        public ActionResult Index()
        {
            return View();
        }
    }

 View كنترلر دوم

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
       @TempData["Message"];
    </div>
</body>
</html>


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

لینک های دانلود

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