問題描述:
后台,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) 后來,無意中發現了這個方法,一樣解決了問題,個人這個方式更好,當然還可以直接人工代碼解碼
解決途徑:
網上查詢
參考資料:忘了...