source

ajax 새로 고침에 대한 구성 요소 대체 보기

factcode 2023. 9. 16. 09:56
반응형

ajax 새로 고침에 대한 구성 요소 대체 보기

다양한 페이지에 내장된 재사용 가능한 비즈니스 로직이 포함된 뷰 구성요소가 있습니다.잘 작동하고 있습니다.하지만 이제 ajax를 사용하여 뷰 구성요소를 새로 고쳐야 합니다.

이것을 달성할 수 있는 방법이 있습니까?제가 읽은 바로는, 비록 그 정보가 좀 구식이긴 하지만, 그것은 불가능합니다.만약 그것이 불가능하다면, 가장 좋은 대안은 무엇입니까?

베타7에서는 컨트롤러에서 직접 ViewComponent를 반환할 수 있습니다.공지사항의 MVC/Razor 섹션 확인

MVC의 새로운 ViewComponent Result는 작업에서 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");
}

그리고 빠르고 더러운 아약스 리프레시보다 더 좋은 일을 하세요.

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

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

물론 베타7 이전에는 @eedam에서 제안하는 해결 방법으로 보기를 만들거나 다음 답변에 설명된 접근 방식을 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/32618759/viewcomponent-alternative-for-ajax-refresh

반응형