希望有人可以帮助我这.....我正在构建一个MVC3项目,我似乎无法弄清楚为什么我的部分视图不能执行任何内嵌的JavaScript函数。这里是组成的例子,但希望显示我想要实现的校长......MVC3在部分视图中渲染脚本
我有一个视图项目列表,称为项目。
foreach (var item in Model.SaleItems)
{
<div>@Html.ActionLink((string)item.ID, "Item", new { ID = @item.ID })</div>
}
如果用户点击其中一个项目,他们将被发送到一个页面,其中包含有关所选项目的详细信息。在这个页面上,有一个菜单会有3个选择;细节,评论,图像(每个都是局部视图)。如果用户从菜单中选择详细信息选项,则细节部分将显示来自web服务的几个图表,如Google可视化API。
这是我用一个脚本局部视图加载图表:
<div>
<h4>Details</h4>
<div id= "detailsContainer"></div>
</div>
<script type="text/javascript">
$(document).ready(function() {
google.load('visualization', '1', { packages: ['table'] });
google.setOnLoadCallback(drawDetailsTable);
});
function drawDetailsTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', '');
data.addColumn('string', '');
data.addRows(4);
data.setCell(0, 0, 'Color');
data.setCell(0, 1, '<b>@Model.Color</b>');
data.setCell(1, 0, 'Size');
data.setCell(1, 1, '<b>@Model.Size</b>');
data.setCell(2, 0, 'Weight');
data.setCell(2, 1, '<b>@Model.Weight</b>');
data.setCell(3, 0, 'Material');
data.setCell(3, 1, '<b>@Model.MainMaterial</b>');
var table = new google.visualization.Table(document.getElementById('detailsContainer'));
var options = { allowHtml: true };
table.draw(data, options);
}
</script>
任何人有任何想法为什么不起作用?如果我将脚本从局部视图移动到视图,并在主视图的ActionResult中静态声明一个项目,它将起作用,但除此之外它不起作用。
在此先感谢!
确定javascript没有被调用?你有没有尝试过调试它,并设置一个断点,看它是否在javascript处于部分时被命中? – shuniar
如果您将脚本放在承载partialview的页面中,它应该可以工作。这是真的吗?如果没有(从萤火虫错误)会怎么样? – Iridio
@shuniar - 是的,我试过警报和断点,我也尝试添加另一个脚本来调用脚本,没有运气! –