gpt4 book ai didi

jquery - MVC3 : jquery ajax to return partial view with HTML dataType from controller but getting error

转载 作者:行者123 更新时间:2023-12-03 22:58:23 24 4
gpt4 key购买 nike

我需要一些帮助。当我在按钮单击事件上从 jQuery ajax 调用 Controller 操作时,我将部分 View 作为 HTML 数据类型返回。

这是我主视图中的 Javascript 标签:

$(function () {
$('#searchButton').click(function () {
var DTO = {
Name: $('#Name').val()
};
$.ajax({
url: '/Grid/GetSearch',
type: "GET",
dataType: "html",
data: DTO,
cache: false,
success: function (data) {
//Fill div with results
$("#SearchViewDiv").html(data);
},
error: function (xhr, status, error) {
alert(xhr.responseText);
}
});
});
});

Controller 代码:

[HttpGet]
public ActionResult GetSearch(string name)
{
var accounts = _userAccounts.FindAll(x => x.Name.Contains(name));
return PartialView("SearchResult", accounts);
}

当 jQuery ajax 调用此操作时,我能够调试此 Controller ,但当它返回时,我会进入 jQuery Ajax 的错误函数。所以猜测目标 URL 是正确的。但无法弄清楚我哪里出了问题。如果需要更多信息,请告诉我。

最佳答案

感谢 Dzmitry 的投入。但我找到了解决方案。

问题:问题是单击按钮后页面重新加载,导致 Ajax 调用在返回此部分 View 响应时被取消。

解决方案:只需添加 event.preventDefault() 即可解决此问题。所以 Javascript 片段看起来像这样,

$('#searchButton').click(function (e) {
var DTO = {
Name: $('#Name').val()
};
e.preventDefault();
$.ajax({
url: '/Grid/GetSearch',
type: "GET",
dataType: "html",
data: DTO,
cache: false,
success: function (data) {
//Fill div with results
$("#SearchViewDiv").html(data);
},
error: function (xhr, status, error) {
alert(xhr.responseText);
}
});
});

关于jquery - MVC3 : jquery ajax to return partial view with HTML dataType from controller but getting error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23711280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com