我正在使用RazorEngine評估一些JavaScript代碼,並遇到無法編譯的問題。這裏有一個例子:RazorEngine評估問題.js代碼
var someBarChart = d3.select("@Model.DivId").append("svg")
.attr("width", barChartWidth + barChartMargin.left + barChartMargin.right)
.attr("height", barChartHeight + barChartMargin.top + barChartMargin.bottom)
.append("g")
.attr("transform", "translate(" + barChartMargin.left + "," + barChartMargin.top + ")");
的這裏的罪魁禍首是「」繞@Model.DivId
馬克。somone可以指點我來評估這個特定的例子嗎?
我期待這樣的結果:
var someBarChart = d3.select("someDivId").append("svg")
.attr("width", barChartWidth + barChartMargin.left + barChartMargin.right)
.attr("height", barChartHeight + barChartMargin.top + barChartMargin.bottom)
.append("g")
.attr("transform", "translate(" + barChartMargin.left + "," + barChartMargin.top + ")");
而且,它沒有在我身上時,我嘗試評價是這樣的:
@Model.BarChartName.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + barChartHeight + ")")
.call(xAxis);
在這種情況下,我期待這樣的結果:
someBarChart.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + barChartHeight + ")")
.call(xAxis);
就像我剛纔提到的,我使用RazorEngine及其默認配置來解碼Html。我也試過一個使用var someBarChart = d3.select("@Raw(Model.Div)").append("svg")
的案例,但是也沒有評估。
所有的想法表示讚賞。 謝謝
通常我過去所做的是將divid呈現爲任何需要的數據屬性,然後通過$(this).data('divid')或其他方式在javascript中引用它。這樣,您也可以將JavaScript從視圖中移出到它自己的文件中。 –