Подтвердить что ты не робот

ASP.NET MVC с использованием ViewData в javascript

В настоящее время я создаю веб-сайт в ASP.NET MVC. Я пытаюсь получить доступ к ViewData в javascript.

Есть ли способ получить доступ к строковому значению с помощью javascript в представлении, который был сохранен в ViewData в Action Controller. (Я не могу определить правильный синтаксис).

Я хочу сделать что-то вроде..

var str = ViewData["Text"];

Я попробовал следующее:

var str = <% = ViewData [ "Текст" ]% >

но это не сработало.

Кто-нибудь может помочь.

Спасибо.

4b9b3361

Ответ 1

Как это (Razor):

var str = @Html.Raw(Json.Encode(ViewData["Text"]));

или (WebForms), используя JavaScriptSerializer (и после импорта прописного пространства имен в вашу веб-форму - System.Web.Script.Serialization):

var str = <%= new JavaScriptSerializer().Serialize(ViewData["Text"])) %>;

И, пожалуйста, не используйте ViewData в приложении ASP.NET MVC. Используйте модели просмотра и строго типизированные представления, чтобы ваш код выглядел следующим образом:

var str = <%= new JavaScriptSerializer().Serialize(Model.Text) %>;

Эта техника еще более крутая, так как теперь вы можете JSON сериализовать всю модель представления:

var model = <%= new JavaScriptSerializer().Serialize(Model) %>;
var str = model.Text;

Ответ 2

Это должно быть:

var str = '<%= ViewData["Text"] %>';