0

我正在使用 MVC 4 和谷歌图表 API,当我在我的 web.config 中启用授权时,我的图表的交互性会中断。(渲染得很好,但是当我单击链接以获取更多信息时,会引发一个错误,不知道“google”是什么。

下面是我的vbhtml页面;

@Code
   ViewData("Title") = "Home Page"
End Code
@Section Head
   @Scripts.Render({"https://www.google.com/jsapi"})
End Section
<h3>Welcome to XXXXXXX</h3>
<p>
   This will be a multi-system dashboard
</p>
<div id="vacancyRates"></div>
<script type="text/javascript">
google.load('visualization', '1.0', { 'packages': ['corechart'] });
google.setOnLoadCallback(drawChart('vacancyRates'));

function drawChart(container) {
    $.ajax({
        url: "/Home/GetVacancyRates",
        success: function (result) {
            var data = new google.visualization.arrayToDataTable(result);
            var options = { title: 'Community Vacancy Rates', tooltip: { trigger: 'selection' }, width: 500, height: 500, is3D: true };
            var chart = new google.visualization.PieChart(document.getElementById(container));
            chart.setAction({
                id: 'searchCommunity',
                text: 'View Community',
                action: function () {
                    selection = chart.getSelection();
                    //open a search for that community
                    window.location.href = "/Units/?community=" + data.getFormattedValue(selection[0].row, 2);
                }
            });
            chart.draw(data, options);
        },
        error: function (xhr, status, msg) { alert(msg); }
    });
}

当我将以下条目添加到我的 web.config 中时,一切都崩溃了。

<authorization><deny users="?"/></authorization>

*我还添加了几个其他授权标签,以允许匿名用户访问我的 CSS 页面以及相关的脚本和图像。

奇怪的是;图表在加载时渲染得很好,当相关操作被触发时,网站崩溃(在调试模式下)。上线失败

google.load(....);

“谷歌未定义”

想法?


我尝试过的事情:
将脚本全部移动到“@Section Head”
将渲染更改为“//www.google.com/jsapi”
更多的事情,我想我越来越近了
(请记住,它只会在身份验证开启时失败)
如果我从超链接中删除“/?community = X”,它一切正常(尽管我没有得到我想要的结果下一页显然)事实上,如果我在页面上以相同的格式创建另一个链接,使用 ?community 页面在谷歌图表之外失败。

4

0 回答 0