{"id":100,"date":"2014-05-09T09:51:00","date_gmt":"2014-05-09T08:51:00","guid":{"rendered":"https:\/\/debuggersspace.com\/index.php\/2014\/05\/09\/what-is-viewbag-viewdata\/"},"modified":"2014-05-09T09:51:00","modified_gmt":"2014-05-09T08:51:00","slug":"what-is-viewbag-viewdata","status":"publish","type":"post","link":"https:\/\/debuggersspace.com\/index.php\/2014\/05\/09\/what-is-viewbag-viewdata\/","title":{"rendered":"What is ViewBag &#038; ViewData ?"},"content":{"rendered":"<div class='booster-block booster-read-block'>\n                <div class=\"twp-read-time\">\n                \t<i class=\"booster-icon twp-clock\"><\/i> <span>Read Time:<\/span>1 Minute, 16 Second                <\/div>\n\n            <\/div><div dir=\"ltr\" style=\"text-align: left;\">\n<div style=\"background-color: white; border: 0px; color: #434343; line-height: 1.538em; margin-bottom: 1em; outline: 0px; padding: 0px; vertical-align: baseline;\">\n<span style=\"font-family: Arial, Helvetica, sans-serif;\"><span style=\"color: #111111;\">ASP.NET MVC offers us three options ViewData, VieBag and TempData for passing data from controller to view and in next request.<\/span><span style=\"color: #111111;\">ViewData and ViewBag are almost similar and TempData performs additional responsibility.<\/span><span style=\"color: #111111; line-height: 1.538em;\">&nbsp;<\/span><span style=\"line-height: 1.538em;\">you&#8217;ll use the ViewData, ViewBag, and TempData objects for the purposes of transporting small amounts of data from and to specific locations (e.g., controller to view or between views). Both the ViewData and ViewBag objects work well in the following scenarios:<\/span><\/span><\/div>\n<ul style=\"background-color: white; border: 0px; color: #434343; line-height: 1.538em; list-style-image: initial; list-style-position: initial; margin: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;\">\n<li style=\"border: 0px; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">Incorporating dropdown lists of lookup data into an entity<\/span><\/li>\n<li style=\"border: 0px; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">Components like a shopping cart<\/span><\/li>\n<li style=\"border: 0px; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">Widgets like a user profile widget<\/span><\/li>\n<li style=\"border: 0px; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">Small amounts of aggregate data<\/span><\/li>\n<\/ul>\n<div style=\"background-color: white; color: #111111;\">\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">Similarities between ViewBag &amp; ViewData :<\/span><\/div>\n<ol style=\"background-color: white; border: 0px; color: #111111; margin: 10px 0px; padding: 0px 0px 0px 40px;\">\n<li style=\"border: 0px; margin: 0px; padding: 0px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">Helps to maintain data when you move from controller to view.<\/span><\/li>\n<li style=\"border: 0px; margin: 0px; padding: 0px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">Used to pass data from controller to corresponding view.<\/span><\/li>\n<li style=\"border: 0px; margin: 0px; padding: 0px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">Short life means value becomes null when redirection occurs. This is because their goal is to provide a way to communicate between controllers and views. It\u2019s a communication mechanism within the server call.<\/span><\/li>\n<\/ol>\n<div style=\"background-color: white; color: #111111;\">\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">Difference between ViewBag &amp; ViewData:<\/span><\/div>\n<ol style=\"background-color: white; border: 0px; color: #111111; margin: 10px 0px; padding: 0px 0px 0px 40px;\">\n<li style=\"border: 0px; margin: 0px; padding: 0px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">ViewData is a dictionary of objects that is derived from ViewDataDictionary class and accessible using strings as keys.<\/span><\/li>\n<li style=\"border: 0px; margin: 0px; padding: 0px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">ViewBag is a dynamic property that takes advantage of the new dynamic features in C# 4.0.<\/span><\/li>\n<li style=\"border: 0px; margin: 0px; padding: 0px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">ViewData requires typecasting for complex data type and check for null values to avoid error.<\/span><\/li>\n<li style=\"border: 0px; margin: 0px; padding: 0px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">ViewBag doesn\u2019t require typecasting for complex data type.<\/span><\/li>\n<\/ol>\n<div style=\"color: #111111;\">\n<div style=\"background-color: white;\">\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">ViewBag &amp; ViewData Example:<\/span><\/div>\n<p><span style=\"background-color: white; font-family: Arial, Helvetica, sans-serif;\"><br \/><\/span><\/p>\n<pre lang=\"cs\" style=\"border: 1px solid rgb(251, 237, 187); color: black; overflow: auto; padding: 6px; white-space: pre-wrap; word-wrap: break-word;\"><span style=\"background-color: white; font-family: Arial, Helvetica, sans-serif;\"><span style=\"border: 0px; color: blue; margin: 0px; padding: 0px;\">public<\/span> ActionResult Index()\n{\n    ViewBag.Name = <span style=\"border: 0px; color: purple; margin: 0px; padding: 0px;\">\"<\/span><span style=\"border: 0px; color: purple; margin: 0px; padding: 0px;\">Monjurul Habib\"<\/span>;\n    <span style=\"border: 0px; color: blue; margin: 0px; padding: 0px;\">return<\/span> View();\n}<\/span><\/pre>\n<\/div>\n<div style=\"border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-width: 0px 0px 1px; color: #005782; margin: 0px; padding: 0px; text-align: right;\" width=\"100%\">\n<span style=\"background-color: white;\"><br \/><\/span><\/div>\n<div style=\"border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-width: 0px 0px 1px; color: #005782; margin: 0px; padding: 0px; text-align: right;\" width=\"100%\">\n<\/div>\n<pre lang=\"cs\" style=\"border: 1px solid rgb(251, 237, 187); overflow: auto; padding: 6px; white-space: pre-wrap; word-wrap: break-word;\"><span style=\"background-color: white; font-family: Arial, Helvetica, sans-serif;\"><span style=\"border: 0px; color: blue; margin: 0px; padding: 0px;\">public<\/span> ActionResult Index()\n{\n    ViewData[<span style=\"border: 0px; color: purple; margin: 0px; padding: 0px;\">\"<\/span><span style=\"border: 0px; color: purple; margin: 0px; padding: 0px;\">Name\"<\/span>] = <span style=\"border: 0px; color: purple; margin: 0px; padding: 0px;\">\"<\/span><span style=\"border: 0px; color: purple; margin: 0px; padding: 0px;\">Monjurul Habib\"<\/span>;\n    <span style=\"border: 0px; color: blue; margin: 0px; padding: 0px;\">return<\/span> View();\n} \n<\/span><\/pre>\n<div style=\"color: #111111;\">\n<span style=\"background-color: white; font-family: Arial, Helvetica, sans-serif;\">In View:<\/span><br \/>\n<span style=\"background-color: white; font-family: Arial, Helvetica, sans-serif;\"><br \/><\/span><\/div>\n<pre lang=\"cs\" style=\"border: 1px solid rgb(251, 237, 187); overflow: auto; padding: 6px; white-space: pre-wrap; word-wrap: break-word;\"><span style=\"background-color: white; font-family: Arial, Helvetica, sans-serif;\">@ViewBag.Name \n@ViewData[<span style=\"border: 0px; color: purple; margin: 0px; padding: 0px;\">\"<\/span><span style=\"border: 0px; color: purple; margin: 0px; padding: 0px;\">Name\"<\/span>] <\/span><\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>ASP.NET MVC offers us three options ViewData, VieBag and TempData for passing data from controller to view and in next request.ViewData and ViewBag are almost similar and TempData performs additional responsibility.&nbsp;you&#8217;ll use the ViewData, ViewBag, and TempData objects for the purposes of transporting small amounts of data from and to specific locations (e.g., controller to [&hellip;]<\/p>\n","protected":false},"author":43,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[37],"tags":[],"class_list":["post-100","post","type-post","status-publish","format-standard","hentry","category-mvc"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Himanshu Namdeo","author_link":"https:\/\/debuggersspace.com\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"ASP.NET MVC offers us three options ViewData, VieBag and TempData for passing data from controller to view and in next request.ViewData and ViewBag are almost similar and TempData performs additional responsibility.&nbsp;you&#8217;ll use the ViewData, ViewBag, and TempData objects for the purposes of transporting small amounts of data from and to specific locations (e.g., controller to&hellip;","_links":{"self":[{"href":"https:\/\/debuggersspace.com\/index.php\/wp-json\/wp\/v2\/posts\/100"}],"collection":[{"href":"https:\/\/debuggersspace.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/debuggersspace.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/debuggersspace.com\/index.php\/wp-json\/wp\/v2\/users\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/debuggersspace.com\/index.php\/wp-json\/wp\/v2\/comments?post=100"}],"version-history":[{"count":0,"href":"https:\/\/debuggersspace.com\/index.php\/wp-json\/wp\/v2\/posts\/100\/revisions"}],"wp:attachment":[{"href":"https:\/\/debuggersspace.com\/index.php\/wp-json\/wp\/v2\/media?parent=100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/debuggersspace.com\/index.php\/wp-json\/wp\/v2\/categories?post=100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/debuggersspace.com\/index.php\/wp-json\/wp\/v2\/tags?post=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}