ASP.NET MVC using ViewData in javascript
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 a View that was stored in ViewData in a Controller Action. ( I am not able to figure out the right syntax ).
I wish to do something like..
var str = ViewData["Text"];
I tried the following:
var str = <%=ViewData["Text"] %>
but it didn't work.
Can someone please hel开发者_如何学JAVAp.
Thanks.
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"] %>';
精彩评论