I am currently building a website in ASP.NET MVC. I am trying to access ViewData in javascript.
Is there any way that I can access a string value using javascript in
Like this (Razor):
var str = @Html.Raw(Json.Encode(ViewData["Text"]));
or (WebForms), using the JavaScriptSerializer (and after importing theproper namespace to your webform - System.Web.Script.Serialization
):
var str = <%= new JavaScriptSerializer().Serialize(ViewData["Text"])) %>;
And please don't use ViewData in an ASP.NET MVC application. Use view models and strongly typed views so that your code looks like this:
var str = <%= new JavaScriptSerializer().Serialize(Model.Text) %>;
This technique is even cooler as now you can JSON serialize the entire view model:
var model = <%= new JavaScriptSerializer().Serialize(Model) %>;
var str = model.Text;
That should be:
var str = '<%= ViewData["Text"] %>';