首页 > 解决方案 > 在 ASP.Net MVC 中用新数据重新加载视图的一部分的更好方法是什么?

问题描述

目前,我认为我有很多表。我第一次使用 HTML 中的模型属性值加载它。

但是我必须根据下拉框中的更改重新加载表格。为此,我正在进行 ajax 调用,并使用新数据替换客户端(Javascript)中的表。

现在,我想知道,还有其他更好的方法来执行此功能吗?就像 Asp.Net 引擎本身负责使用新数据加载特定表一样,因此我不想在 JS 中重新创建 html 结构。

在这种情况下,部分观点会对我有帮助吗?

标签: c#ajaxasp.net-mvc

解决方案


这不是完整的答案,只是关于您可以做什么的想法:

创建控制器

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 绑定,它们将被删除,您将需要重新应用它们。

这只是一个想法,而不是解决方案


推荐阅读