当前位置: 首页 > 面试题库 >

Ajax刷新的ViewComponent替代方案

郗阳德
2023-03-14
问题内容

我有一个viewcomponent,其中包含一些嵌入在各个页面中的可重用业务逻辑。这一直很好。但是,我现在需要使用ajax刷新viewcomponent。

有什么办法可以做到这一点?从我所读的内容来看,这是不可能的,尽管该信息有些过时了。如果不可能的话,最好的选择是什么?


问题答案:

在beta7上,现在可以直接从控制器返回ViewComponent。查看公告的“ MVC
/剃刀”部分

MVC中新的ViewComponentResult使得从操作返回ViewComponent的结果变得容易。这使您可以轻松地将ViewComponent的逻辑公开为独立端点。

因此,您可以拥有一个像这样的简单视图组件:

[ViewComponent(Name = "MyViewComponent")]
public class MyViewComponent : ViewComponent
{
    public IViewComponentResult Invoke()
    {
        var time = DateTime.Now.ToString("h:mm:ss");
        return Content($"The current time is {time}");
    }
}

在像这样的控制器中创建一个方法:

public IActionResult MyViewComponent()
{
    return ViewComponent("MyViewComponent");
}

并且比我快速又肮脏的ajax刷新做得更好:

var container = $("#myComponentContainer");
var refreshComponent = function () {
    $.get("/Home/MyViewComponent", function (data) { container.html(data); });
};

$(function () { window.setInterval(refreshComponent, 1000); });

当然,在beta7之前,您可以创建视图作为@eedam建议的解决方法,也可以使用这些答案中描述的方法



 类似资料:
  • 我不想再使用powermock了。因为junit5开始模拟静态类。因此,我试图摆脱powermock方法。 如您所知,您可以使用whenNew关键字创建类的实例。 Junit5中是否有其他选择? 以下是我的代码的一部分:

  • 问题内容: 我正在尝试使AJAX函数更新约30秒。我已经完成了一个简单的版本,下面是代码。 这有效,但是,当该函数被首次调用时,我不希望它等待30秒,我只希望该函数调用,然后等待30秒,再次调用,等待30秒,再次调用,等等。有什么帮助吗? 问题答案: 考虑改用-更可靠。 当窗口没有焦点时,计时器可以堆叠,然后在再次获得焦点时,所有计时器立即运行。使用还会确保如果第一个请求由于某种原因阻塞,则不会导

  • 本文向大家介绍Ajax实现局部刷新的方法实例,包括了Ajax实现局部刷新的方法实例的使用技巧和注意事项,需要的朋友参考一下 前言 最近复习了一下jQuery的一些内容,特此整理一下一些能用的得到的知识点,以前才学jQuery的时候压根就没有注意到那么多的细节,另外最近一直都在整理前端的一些工作中学到的小经验,大概还会有十篇左右的内容,就会慢慢开始整理后端,框架,以及数据库的一些小知识点 一、 Aj

  • 本文向大家介绍django+js+ajax实现刷新页面的方法,包括了django+js+ajax实现刷新页面的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了django+js+ajax实现刷新页面的方法。分享给大家供大家参考,具体如下: 在服务器开发的时候,为了方便将服务器对外开一个接口来操作,可以使用django制作网页,通过页面来操作服务器。这样可以将服务器的维护工作暴漏在更加友

  • 本文向大家介绍php+ajax实现无刷新分页的方法,包括了php+ajax实现无刷新分页的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php+ajax实现无刷新分页的方法。分享给大家供大家参考。具体实现方法如下: 这是一款基于原生态的php +js +ajax 的分页程序实例,我们详细的从数据库创建到js,php,html页面的创建来告诉你如何实现ajax分页调用数据的方法。 具体

  • 我正在阅读下面Joe Albahari优秀的“C9简而言之”的摘录,并试图理解这里用粗体描述的内容。有人能用我更能理解的方式解释替代方法吗?出于某种原因,这对我来说似乎有些落后。