Store a value in ViewBag from javascript

iLemming picture iLemming · May 31, 2011 · Viewed 34.4k times · Source

How can I store a value in the ViewBag accessing it from javascript?

Answer

Darin Dimitrov picture Darin Dimitrov · May 31, 2011

You cannot store a value in ViewBag from javascript. ViewBag is a server side concept and exists only on the server. Javascript runs on the client. As far as storing some data from ViewBag into a javascript variable is concerned you could use the following:

<script type="text/javascript">
    var foo = @Html.Raw(Json.Encode(ViewBag.FooBar))
</script>

Now this being said I always advice people against using ViewBag/ViewData in ASP.NET MVC. I recommend using strongly typed view and view models. So your code will look like this:

@model MyViewModel
<script type="text/javascript">
    var foo = @Html.Raw(Json.Encode(Model))
</script>