0

我有一个名为 Platypus.XML 的 XML 文件,我已将它添加到我的 Razor 2 项目中,与在 VS 2012 中创建新的 Razor 2 网站(_AppStart.cshtml、Default.cshtml 等)时默认提供的文件处于同一级别。 )

XML 文件似乎格式正确(此外,它已在其他地方成功使用):

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<Platypi>
  <Platypus>
    <PlatypusNumber>1</PlatypusNumber>
    <LocationNumber>1</LocationNumber>
    <PlatypusName>CCR, Inc. Site 1 Q &amp; A</PlatypusName>
  </Platypus>
. . .
</Platypi>

我有这个 html 和 jQuery:

. . .
<ol class="round">
    <li class="one">
        <input type="submit" id="submit" value="Get Platypus.XML" />
        <div id="Platypus_Setup"></div>
    </li>

    <li class="two">
        <input type="submit" id="submit2" value="Get Platypus2.XML" />
        <div id="Platypus_Setup2"></div>
    </li>

    <li class="three">
        <input type="submit" id="submit3" value="Get Platypus3.XML"  />
        <div id="Platypus_Setup3"></div>
    </li>
</ol>

    <script>
        $(document).ready(function () {
            $('#submit').click(function () {
                $.ajax({
                    type: "GET",
                    url: "Platypus.XML",
                    dataType: "xml",
                    success: function (PlatypusRec) {
                        var platypusSetup = "<ul>";
                        $(PlatypusRec).find('Platypus').each(function () {
                            var platypusNum = $(this).find('PlatypusNumber').text()
                            platypusSetup += "<li>" + platypusNum + "</li>";
                        });
                        platypusSetup += "</ul>";
                        $('#Platypus_Setup').append(platypusSetup);
                    }
                });
                return false;
            });
        });
    </script>

(我改编自 aPress 书籍“jQuery 食谱”,食谱 8-8)

尽管如此,混合“Get Platypus.XML”按钮不会将任何内容附加到 Platypus_Setup div 元素。它也不会抛出错误,它只是完全没有做任何事情(我可以​​看到)。

我在这里想念什么?

更新

针对 LOUD 的“手动点击文件”的建议:

从以下位置更改 URL:

http://localhost:53321/XMLFileViewer/Default.cshtml

至:

http://localhost:53321/XMLFileViewer/PLATYPUS.XML

...显示 XML 文件,以及顶部的消息:

此 XML 文件似乎没有任何与之关联的样式信息。文档树如下所示。

另外,我在“return false;”上方添加了错误代码。线:

error: function (xhr, status) {
    alert(xhr.status);
}
return false;

...但我不确定这是否是正确的位置,因为“状态”是灰色的;运行它并将按钮与新的异常处理程序混搭没有什么不同(我没有看到警报框)......

更新 2

移动上面的异常块:

error: function (xhr, status) {
                    alert(xhr.status);
                }
                });
                return false;

...在 VS2012 中加粗了“状态”,但在捣碎按钮时仍然没有错误消息。

4

2 回答 2

1

至少,在下面的代码中将 $(Platypus) 更改为 $(PlatypusRec):

success: function (PlatypusRec) {
    var platypusSetup = "<ul>";
    $(Platypus).find('Platypus')

另外,您在谈论哪些文件(视图/控制器/等)?根据您的路线,它可能无法接收。

我有一个名为 Platypus.XML 的 XML 文件,我已将它添加到我的 Razor 2 项目中,与创建新 Razor 2 网站时默认提供的文件处于同一级别

我会尝试从同一路径在浏览器中手动点击文件。我还会添加一个失败事件来尝试捕获服务器状态代码(404、500 等)

error: function(xhr, status) {
    alert(xhr.status); 
}
于 2013-04-22T23:37:55.680 回答
0

Resharper、jsFiddle 和这些问题是否被 jsFiddle 捕获导致点击事件发生故障?帮我清理了 jQuery;一旦我的语法正确,它就可以正常工作:

$(document).ready(function () {
        $('#submit').click(function () {
            $.ajax({
                type: "GET",
                url: "DuckbillSETUP.XML",
                dataType: "xml",
                success: function (platypusSetupRec) {
                    var platypussetup = "<ul>";
                    $(platypusSetupRec).find('platypus').each(function () {
                        var platypusNum = $(this).find('platypusNumber').text();
                        platypussetup += "<li>" + platypusNum + "</li>";
                    });
                    platypussetup += "</ul>";
                    $('#platypus_Setup').append(platypussetup);
                },
                error: function (xhr, status) {
                    alert(xhr.status);
                }
            });
            return false;
        });
    });
于 2013-04-23T16:18:50.080 回答