当您在MVC剃刀视图上具有一些JavaScript时,可以在多部分语句的中间进行模型变量替换。

为了澄清我有代码

<script>
 function drawChart() {
    $.post('@Url.Content("~/Home/GetDataAssets")', function (d) {
        ...
        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, options);
    });
};




我希望显示的图形类型来自模型。因此图表线必须看起来像

var chart = new [email protected](document.getElementById('chart_div'));


LineChart已被@Model.ChartType替换的地方

这显然给出了错误


  ChartType的使用就像一种方法


有没有办法进行这种替换?

最佳答案

就像@ stephen-muecke所说的那样,剃须刀代码是在服务器端解析的,而javascript代码是在客户端解析的。

如果Model.ChartType返回一个字符串,即LineChart,则仅需要将括号和(...)的内容输出为文本。

为此,您必须添加@{<text> ... </text>}以输出纯文本,如下所示

var chart = new [email protected]@{<text>(document.getElementById('chart_div'));</text>}


以我的示例为例,客户端的结果将是

var chart = new google.visualization.LineChart(document.getElementById('chart_div'));

10-08 08:37