asp.net - PartialView 未使用新数据进行更新
问题描述
默认情况下,我在局部视图中加载所有数据
Index.cshtml 中的 html 代码
@model GMWUI.ViewModel.MessageDisplayModel
<div id="divTblMsg" class="grid-content">
@{
Html.RenderPartial("filterMessages", Model);
}
</div>
家庭控制器.cs
public async Task<IActionResult> Index()
{
messageDisplayModel.Messages = await ApiClientFactory.Instance.GetMessages();
return View(messageDisplayModel);
}
当用户单击带有搜索条件的过滤器按钮时,我将过滤后的数据从 web api 获取到我的家庭控制器 filtermessage 方法
这是我单击过滤器按钮时的ajax调用
$.ajax({
method: 'post',
url: "Home/postMessage",
data: JSON.stringify(model),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//my table element id is divTblMsg
$("#divTblMsg").html(data);
}
});
家庭控制器.cs
[HttpGet]
public async Task<IActionResult> filterMessages(GetMessageParams searchCriteria)
{
//I though adding below line will clear old data should update partial view with filtered data, but it is not working.
messageDisplayModel.Messages = Enumerable.Empty<Messages>();
messageDisplayModel.Messages = await ApiClientFactory.Instance.GetMessages(searchCriteria);
//I am getting filtered data to messageDisplayModel.messages and I am passing it to partial view
return PartialView("filterMessages", messageDisplayModel.Messages);
}
我找不到问题
解决方案
是不是偶然的,因为您的 AJAX 方法是使用过滤器标记的post
,Home/postMessage
而不是使用过滤器标记的?get
filterMessages
[HttpGet]
推荐阅读
- powershell - powershell中的Unicode
- php - 尊重 Laravel 刀片中的换行符
- laravel - 由于外键无法更新记录
- java - Apache Beam 中的窗口数据每小时(顺时针)基础
- c++ - c ++ 11(MSVS2012)正则表达式在多行std :: string中查找文件名
- java - 使用 JeMalloc 查找 Java 应用程序中的本机内存泄漏
- ios - 在应用程序运行后,是否可以在 ui 测试中以编程方式将应用程序移动到拆分视图/滑块视图?
- node.js - 如何获取 Alexa 设备的时区或本地时间
- php - Divi Builder 编辑器未显示
- java - 无法单击未使用 Appium Java for Android 应用程序启用的按钮