我有一个带有搜索按钮的对话框弹出式窗体,每当单击搜索时,我使用ajax来调用操作方法。该方法根据用户输入的过滤器从数据库获取数据,然后动作方法返回将显示网络网格的部分视图。我的问题是,当它显示网络网格的第一页时,没有问题,但如果我转到下一页,网络网格就消失了。控制器
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult SubscriberLookUp(Member filter)
{
Member model = new Model();
//retrieve data from db based on filter and store result in a session
model = (Member)Session["UserSession"];
return PartialView("MemberGrid", model);
}查看:
<div id="ASGrid">
</div>
<script>
$(document).ready(function () {
$("#ASearchbtn").click(function () {
var ASData = $("#AdvanceSearchForm").serialize();
$.ajax({
type: "POST",
url: "/SearchPayment/SubscriberLookUp",
data: ASData,
datatype: "html",
cache: false,
success: function (response) {
$("#AdvSearch").modal("hide");
$('#ASGrid').html(response);
},
complete: function () {
$("#AdvSearch").modal("hide");
}
});
})
})请帮帮我,我不知道我做错了什么,也不知道我没有做什么。我的猜测是,由于ajax调用只针对搜索按钮,它将只显示初始结果(第一页),因此我考虑将我的SubscriberLookup方法更改为return View(模型),然后在控制器中创建另一个方法:
public ActionResult GetGrid()
{
Member model = (Member)Session["UserSession"];
return PartialView("MemberGrid", model);
}然后在我的主视图中创建另一个ajax调用:
function GetGrid(){
$.ajax({
type: "POST",
url: "/SearchPayment/GetGrid",
datatype: "html",
cache: false,
success: function (response) {
$("#AdvSearch").modal("hide");
$('#ASGrid').html(response);
},
complete: function () {
$("#AdvSearch").modal("hide");
}
});
}但是它不起作用,它似乎没有进行第二次ajax调用。
另一个问题是,我可以在不是ActionResult的方法上执行HttpPost吗?
发布于 2021-02-06 13:00:57
我知道我来晚了。我遇到了同样的问题。WebGrid中的分页只适用于GET请求。另外,如果你添加一个int?参数添加到从Ajax调用的Action方法中,您可以获得页码
https://stackoverflow.com/questions/44876098
复制相似问题