当您在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'));