我有一个名为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 & 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 Recipes”,配方8-8改编了这个)
尽管如此,将“Get Platypus.XML”按钮混合不会向Platypus_Setup div元素添加任何内容。它也不会引发错误,它只是完全没有(我可以看到)。
我在这里缺少什么?
响应LOUD建议“手动点击文件”:
更改网址:
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;
...但我不确定这是否是正确的位置,因为“状态”是灰色的;运行它并使用新的异常处理程序捣碎按钮没有任何不同(我看不到警告框)...
移动上面的异常块:
error: function (xhr, status) {
alert(xhr.status);
}
});
return false;
......在VS2012中加强了“状态”,但是在按下按钮时仍然没有错误的消息。
答案 0 :(得分:1)
至少,在下面的代码中将$(Platypus)更改为$(PlatypusRec):
success: function (PlatypusRec) {
var platypusSetup = "<ul>";
$(Platypus).find('Platypus')
另外,你在谈论哪些文件(views / controller / etc)?根据您的路由,可能无法提取它。
我有一个名为Platypus.XML的XML文件,我在Razor 2项目中添加了与创建新Razor 2网站时默认提供的文件相同的级别
我会尝试从同一路径在浏览器中手动命中文件。我还会添加一个失败事件来尝试捕获服务器状态代码(404,500等)
error: function(xhr, status) {
alert(xhr.status);
}
答案 1 :(得分:0)
Resharper,jsFiddle和Are these problems caught by jsFiddle causing the click event to malfunction?帮我清理了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;
});
});