MVC3 ViewBage 輸出的值 被編碼


問題描述:

      后台,Actoin中我向ViewBage中加入了一個json     

ViewBage.JsonDateMenu ="[{\"id\":2,\"text\":\"菜單管理\",\"state\":\"open\",\"iconCls\":null,\"checked\":true,\"attributes\":null,\"children\":[{\"id\":3,\"text\":\"新建菜單               \",\"state\":\"open\",\"iconCls\":null,\"checked\":true,\"attributes\":null,\"children\":null},{\"id\":5,\"text\":\"編輯菜單\",\"state\":\"open\",\"iconCls\":null,\"checked\":true,\"attributes\":null,\"children\":null}]},{\"id\":4,\"text\":\"角色權限管理\",\"state\":\"open\",\"iconCls\":null,\"checked\":true,\"attributes\":null,\"children\":[{\"id\":6,\"text\":\"新增角色\",\"state\":\"open\",\"iconCls\":null,\"checked\":true,\"attributes\":null,\"children\":null}]}]" System.String

    但是前台通過@ViewBage取到的值是這樣的

     [{"id":2,"text":"菜單管理","state":"open","iconCls":null,"checked":true,"attributes":null,"children":[{"id":3,"text":"新建菜單","state":"open","iconCls":null,"checked":true,"attributes":null,"children":null},{"id":5,"text":"編輯菜單","state":"open","iconCls":null,"checked":true,"attributes":null,"children":null}]},{"id":4,"text":"角色權限管理","state":"open","iconCls":null,"checked":true,"attributes":null,"children":[{"id":6,"text":"新增角色","state":"open","iconCls":null,"checked":true,"attributes":null,"children":null}]}]

 

    很明顯,雙引號被編碼了顯示出來,這樣很明顯不是我們要的效果,我們要的是原樣輸出,

解決方案:

      1. @MvcHtmlString.Create(@ViewBag.JsonDateMenu),這樣之后,一切正常了!,一般擴展HtmlHelp的時候返回MVCHtmlString 都是使用的這個方法

      2.  @Html.Raw(@ViewBag.JsonDateMenu) 后來,無意中發現了這個方法,一樣解決了問題,個人這個方式更好,當然還可以直接人工代碼解碼

解決途徑:

     網上查詢

     參考資料:忘了...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM