我可以从javascript调用视图组件上的方法吗?

问题描述 投票:1回答:1

我制作了一个组件:

public class CatSearchComponent : ViewComponent
{
    public async Task<IViewComponentResult> InvokeAsync()
    {
        return View();
    }
}

@await Component.InvokeAsync("CatSearchComponent")

在组件内,我有一个按钮,我想使用jquery $ .ajax调用方法并在组件内呈现一些数据,例如一个名为GetCats()的操作,该操作返回一些Json数据。

最好将此方法放入组件中,因为它是特定于组件的。

但是我不确定在$ .ajax调用中将放入什么URL来调用这样的方法,或者即使在MVC中允许使用。

我可以创建一个新的控制器并对其进行操作以获取数据,但是如果将其与我的ViewComponent结合使用,那就太好了。有办法吗?

c# asp.net-core-mvc asp.net-core-2.2
1个回答
0
投票

您可以,但不能直接。

您可以在MVC控制器中创建ActionResult,该控制器将返回ViewComponent结果;然后,在JavaScript / jQuery中,调用控制器。

请参阅此StackOverflow答案以获取完整的描述和代码:

Viewcomponent alternative for ajax refresh

(对@ daniel-j-g表示感谢)

© www.soinside.com 2019 - 2024. All rights reserved.