我需要在ASP項目MVC模式中插入一個圖形。 我自己定義了Json格式所需的字符串,它似乎正常工作。 的字符串,由控制器定義是:用ASP插入一個s字符串作爲var函數MVC
{
labels: ['America','Europa', 'Global','Oceania'],
datasets: [{
data: [0.20, 0.20, 0.20, 0.40],
backgroundColor: ['#a3aaf7','#89a8ff', '#01469b', '#0d1156'],
hoverBackgroundColor: ['#beed9e', '#84ffbd', '#0afb00', '#058217']
}]
}
要插入的圖表中,使用chart.js之,顯然我需要這個變量傳遞到相應的javascript函數...我嘗試使用HTML助手(@ html.displayfor)以及直接參考模型變量(例如@ Model.Tipologie_json):
<script>
var tipologia=new string(@Model.Tipologie_json);
window.onload=function(){
var ctx = document.getElementById("Tipologia").getContext("2d");
var myPieChart = new Chart(ctx, { type: 'pie', data: tipologia });
}
</script>
但HTML轉換爲:
var tipologia=new string({labels:['Equity'],datasets:[{ data:[1.00000],backgroundColor:['#a3aaf7'],hoverBackgroundColor:['#beed9e']}]});
因此它將'轉換爲等價的代碼,這使得圖表的計算失敗。 如何在不進行任何字符轉換的情況下將變量傳遞給HTML?非常感謝
你可以創建一個類與數組作爲屬性,填充它並使用'JsonConvert.Serialise'(newtonsofts json nuget)。如果你是以字符串形式進行的,我認爲你不會像這樣編碼這樣的引號 – Pete
是的,只是不要創建一個字符串。你甚至不需要自定義類。您可以定義一個匿名對象,並將其直接序列化爲JSON。 –
試試這個'@ Html.Raw(Json.Encode(Model.Tipologie_json))'。 – mmushtaq