使用 JQuery 调用局部视图

Posted

技术标签:

【中文标题】使用 JQuery 调用局部视图【英文标题】:Calling Partial View Using JQuery 【发布时间】:2021-10-15 03:09:51 【问题描述】:

我的/Shared 文件夹中有一个像这样定义的局部视图

<div id="myProducts">
  @html.Partial("_ProductsList",Model)
 </div>

我想通过 JQuery 加载 _ProductsList。基本上,我试图在按钮单击时刷新我的_ProductsList 视图。我试着这样做:

$('myProducts').Load(/Shared/_ProductsList)

但我收到“找不到资源错误”。

【问题讨论】:

A previous question 提出了不同的问题,one of the answers 的问题演示了如何通过 AJAX 加载部分内容。 (免责声明:我自己发布了该问题的答案——尽管我的答案实际上并没有解决您的问题;其他人可能会。) 除此之外,/Shared/_ProductsList 应该在你的 jQuery 中用引号引起来。我认为这是一个错字。另外,您能否确认您可以导航到/Shared/_ProductsList 并得到回复?这将有助于确认这不是路由问题。 你需要在控制器中创建一个返回/Shared/_ProductsList局部视图的方法。您可以像处理其他视图一样从 jquery 调用此方法 【参考方案1】:

尝试使用这个 ajax 代码

        $.ajax(
        
            url: "/MyController/MyAction",
            type: "POST",
            success: function (result) 
                    $("#myProducts").html(result);
            ,
            error: function (xhr, exception) 
               
            
        );

和行动

public partial class MyController : Controller

  public IActionResult MyAction()
  
      var model=new myModel  ... assign model properties  ;
     return PartialView("_ProductsList", model);
 

【讨论】:

以上是关于使用 JQuery 调用局部视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery ajax 上设置 UpdateTargetId

在 ASP.NET MVC 中使用 jQuery 渲染局部视图

使用 JQuery 重新加载局部视图

动态局部视图 + jquery 表单劫持 + 客户端验证 = 不工作

如何在 ASP.NET MVC 中使用 Ajax 调用刷新局部视图?

动态添加部分视图后如何重新初始化JQuery