首页 > 解决方案 > 使用 Razor Pages coredotnet 如何通过 ajax 加载部分视图

问题描述

在使用 Razor 页面时,使用 partial using 很简单@Html.Partial(..)。但是,当下拉列表更改时,我想刷新部分视图 - 部分视图呈现的部分。

我搜索了很多,并找到了诸如:https ://github.com/aspnet/Razor/issues/2073 之类的答案,他们说部分代码是为了后面的代码。

是否有合理的解决方法,以便我可以重新渲染部分视图中定义的视图子集?实现这一目标的最佳实践方式是什么?

标签: ajaxpartial-viewsrazor-pages

解决方案


是的,

有一个可以调用的操作方法来重新加载部分视图:

public ActionResult Reload()
{
    return PartialView("NameOfPartialView");
}

从客户端获取它(我将使用 jQuery):

$.ajax({ 
  type: "post", 
  url: "Reload",
  data: {},
  success: function(d) {
   //d is the HTML content returned from the Action Method
   $("#parentelementaroundinnerdata").html(d);
  }
});

从 action 方法返回部分视图会返回一个 HTML 字符串,并且可以使用父元素将其注入页面以用更新替换其内容。这意味着在渲染原件时,设置如下:

<div id="parentelementaroundinnerdata">
   @Html.Partial("NameOfPartialView")
</div>

您可以从 AJAX 请求中使用相同的部分并加载初始结果 - 有时您必须小心在部分中发生的事情,因为...


推荐阅读