Jquery 为什么不是';单击我的按钮时,我的局部视图不会被渲染吗?
目标是加载部分视图而不刷新整个页面,只刷新部分视图本身,当我这样做时,我希望传递到视图中的模型int递增 但当我试图通过按下按钮加载视图时,它会显示Jquery 为什么不是';单击我的按钮时,我的局部视图不会被渲染吗?,jquery,asp.net,ajax,asp.net-mvc,asp.net-core,Jquery,Asp.net,Ajax,Asp.net Mvc,Asp.net Core,目标是加载部分视图而不刷新整个页面,只刷新部分视图本身,当我这样做时,我希望传递到视图中的模型int递增 但当我试图通过按下按钮加载视图时,它会显示 XML Parsing Error: no root element found Location in Console 这很有趣,因为在控制台中它还输出 <h1>Hello from _Items partial view. + 1</h1> 使用以下内容: $.ajax({ url: &qu
XML Parsing Error: no root element found Location in Console
这很有趣,因为在控制台中它还输出
<h1>Hello from _Items partial view. + 1</h1>
使用以下内容:
$.ajax({
url: "Home/LoadView",
type: 'GET',
success: function (response) {
console.log("Did it get called is the question..");
console.log("Response: " + response);
$(".text-center").html(response);
}
});
load()方法从服务器加载数据,即如果要从任何文件加载数据,则可以使用load()。但是,当您从部分视图获取数据时,部分视图会返回需要添加到所选div中的HTML文档。因此,无论何时使用部分视图,请尽量避免使用load()。正如@Rutuja所说,您需要将
.load()更改为.HTML()
方法来解决当前问题
另外,我发现您使用变量I
来显示
点击次数
如果要根据次数增加i
单击加载,则当前方法无法实现,
它将始终仅显示1
因为每次单击Load
按钮时,您都在重新输入整个控制器的LoadView
方法,因此i
将被重新分配默认值0,而不是基于以前的数据进行叠加
为了获得点击次数,我建议您将I变量值从js传递到LoadView,如下所示:
<script>
var i = 0;
function LoadInfo() {
i++;
$.ajax({
url: "Home/LoadView?i=" + i,
type: 'GET',
success: function (response) {
console.log("Did it get called is the question..");
console.log("Response: " + response);
$(".text-center").html(response);
}
});
}
</script>
结果如下:
您能解释一下.load()和.html()之间的区别吗?load()方法从服务器加载数据,即,如果您想从任何文件加载数据,则可以使用load()。但是,当您从partial view获取数据时,partial view会返回HTML文档,您需要将其添加到选定的div中。因此,无论何时使用partial view,请尽量避免使用load()。哦,对不起,我想让你把它放在你的答案中,这样其他任何有同样问题的人都能清楚地看到,并且不理解你的代码工作和OG代码不工作的原因。我代表你做了编辑。如果批准的话应该会出现。
int i = 0;
[HttpGet]
public IActionResult LoadView()
{
i++;
return PartialView("_Items", i);
}
$.ajax({
url: "Home/LoadView",
type: 'GET',
success: function (response) {
console.log("Did it get called is the question..");
console.log("Response: " + response);
$(".text-center").html(response);
}
});
<script>
var i = 0;
function LoadInfo() {
i++;
$.ajax({
url: "Home/LoadView?i=" + i,
type: 'GET',
success: function (response) {
console.log("Did it get called is the question..");
console.log("Response: " + response);
$(".text-center").html(response);
}
});
}
</script>
[HttpGet]
public IActionResult LoadView(int i)
{
return PartialView("_Items", i);
}