c# - 在 ASP.Net MVC 中用新数据重新加载视图的一部分的更好方法是什么?
问题描述
目前,我认为我有很多表。我第一次使用 HTML 中的模型属性值加载它。
但是我必须根据下拉框中的更改重新加载表格。为此,我正在进行 ajax 调用,并使用新数据替换客户端(Javascript)中的表。
现在,我想知道,还有其他更好的方法来执行此功能吗?就像 Asp.Net 引擎本身负责使用新数据加载特定表一样,因此我不想在 JS 中重新创建 html 结构。
在这种情况下,部分观点会对我有帮助吗?
解决方案
这不是完整的答案,只是关于您可以做什么的想法:
创建控制器
public class RenderPartialController
{
[HttpGet]
public IActionResult RenderPartial(string viewName, string data)
{
//do something with data
//create model for that view
return View(viewName, model);
}
}
然后在js中,您可以进行ajax调用并用响应中的数据替换html
function updatePartial(viewName, dataObject, selector){
let data = JSON.stringify(dataObject);
$.get(`...RenderPartial?viewName=${viewName}&data=${data}`, res => {
$(selector).html($(res).find(selector).html());
});
}
updatePartial('_TableView', {id: 1}, '#mainTable');
请记住,如果您在旧 html 中有任何 JS 绑定,它们将被删除,您将需要重新应用它们。
这只是一个想法,而不是解决方案
推荐阅读
- linux - 如何在 linux 中使用 ls 和 -R 选项结合 grep 显示文件的完整路径
- php - 不能合并两个关节 Laravel
- spring - 为什么弹簧状态机使用另一个线程?
- event-handling - 在 Monaco Editor 中,如何捕获行选择事件?
- python - Python中的颜色不显示
- python - 取模型中预训练嵌入的平均值
- android - TokBox API 不适用于 ONE PLUS 设备?
- java - 如何跟踪soap请求的api输出请求?
- node.js - 节点 spawn_child 使用不同的节点版本
- javascript - 当我尝试从列表视图中删除时,listtile 项目重新出现