我目前正在ASP.NET MVC中構建一個網站。我想在JavaScript中訪問ViewData。在MVVM中使用ViewData的ASP.NET MVC
有沒有什麼辦法可以在Controller中存儲ViewData的View中使用JavaScript訪問字符串值。 (我無法弄清楚正確的語法)。
我希望做這樣的事情..
var str = ViewData["Text"];
我試過如下:
無功海峽= <%=計算機[ 「文本」]%>
,但它沒」工作。
有人可以請幫忙。
謝謝。
我目前正在ASP.NET MVC中構建一個網站。我想在JavaScript中訪問ViewData。在MVVM中使用ViewData的ASP.NET MVC
有沒有什麼辦法可以在Controller中存儲ViewData的View中使用JavaScript訪問字符串值。 (我無法弄清楚正確的語法)。
我希望做這樣的事情..
var str = ViewData["Text"];
我試過如下:
無功海峽= <%=計算機[ 「文本」]%>
,但它沒」工作。
有人可以請幫忙。
謝謝。
像這樣(剃刀):
var str = @Html.Raw(Json.Encode(ViewData["Text"]));
或(Web窗體),使用JavaScriptSerializer(和進口theproper命名空間到你的網頁表單後 - System.Web.Script.Serialization
):
var str = <%= new JavaScriptSerializer().Serialize(ViewData["Text"])) %>;
請不要在ASP.NET MVC應用程序中使用ViewData上。使用視圖模型和強類型的意見,使您的代碼如下所示:
var str = <%= new JavaScriptSerializer().Serialize(Model.Text) %>;
這種技術是更酷因爲現在你可以JSON序列化整個視圖模式:
var model = <%= new JavaScriptSerializer().Serialize(Model) %>;
var str = model.Text;
這應該是:
var str = '<%= ViewData["Text"] %>';
不,那是非常糟糕的。切勿在真實世界的應用程序中使用這樣的東西。如果文本包含報價怎麼辦?這段代碼很容易受到XSS攻擊,特別是如果這個文本來自用戶輸入。 – 2011-05-02 22:21:33
他已經很接近了,我認爲回答他的問題比讓問題複雜化更有幫助。 – 2011-05-02 22:29:01
這不是問題的答案!這是對XSS攻擊和廣告不良做法的邀請。我們不是在說這裏過於複雜。我們正在談論回答這個問題。你怎麼可能說這回答了這個問題?我的意思是這個代碼很快就會中斷,而且它還會受到關於SO的另一個問題的影響。我不能相信這個問題是有效的,你還沒有刪除它,所以它不會被索引,因爲有人可能實際上在他的應用程序中使用它。 – 2011-05-02 22:31:49
謝謝你的深入解答先生。 – ElvisLives 2011-11-07 18:10:39