我有一个 d3.js 脚本,它在我的应用程序外部的 .html 文档中呈现得很好,但是当我将它嵌入到 mvc 应用程序内的 .cshtml 文件中时,svg 是空白的。有人可以帮我理解为什么这不是渲染吗?Chrome 和 IE 中的 Javascript 控制台均未显示错误。谢谢
这是dom:
<svg width="1920" height="1000">
<rect class="background" width="1920" height="1000"/>
<g transform="translate(960 500)">
<g id="states"/>
.cshtml 是:
<style>
.background {
fill: none;
pointer-events: all;
}
#states {
fill: green;
stroke: #000000;
stroke-width: .5px;
}
#pct {
stroke: blue;
fill: blue;
stroke-width: .5px;
}
#states .active {
fill: steelblue;
}
</style>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://d3js.org/queue.v1.min.js"></script>
<script>
var height = 1000,
width = 1920,
centered;
var projection = d3.geo.albersUsa()
.scale(width)
.translate([0,0]);
var path = d3.geo.path("~/Map_Data/states.geojson")
.projection(projection);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
svg.append("rect")
.attr("class", "background")
.attr("width", width)
.attr("height", height);
var g = svg.append("g")
.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")")
.append("g")
.attr("id", "states");
d3.json("@(HttpContext.Current.Server.MapPath("~/Map_Data/states.geojson"))", function (data) {
g.selectAll("path").data(data.features)
.enter().append("path")
.attr("d", path)
.attr("id", "states");
});
</script>