ASPプロジェクトのMVCパターンにグラフを挿入する必要があります。 Json形式で必要な文字列を自分で定義していますが、正しく動作しているようです。 コントローラによって定義される文字列は、次のとおりですASP MVCでjavascript関数のs文字列をvarに挿入
{
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に変数を渡すにはどうすればよいですか?あなたがこれを行うことができます代わりに、あなたのjavascriptに直接値を挿入しようとする多くのおかげ
をそれを設定し、 'JsonConvert.Serialise'(newtonsofts json nuget)を使用します。あなたが文字列としてやっているのであれば、そのような引用符をhtmlでエンコードするとは思わない。 – Pete
ええ、文字列を作成しないでください。あなたは実際にカスタムクラスを必要としません。匿名オブジェクトを定義してJSONに直接シリアライズすることができます。 –
これを試してください '@ Html.Raw(Json.Encode(Model.Tipologie_json))'。 – mmushtaq