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

时间:2019-05-29 09:09:09

标签: c# asp.net-core-mvc asp.net-core-2.2

我制作了一个组件:

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

@await Component.InvokeAsync("CatSearchComponent")

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

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

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

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

1 个答案:

答案 0 :(得分:0)

您可以,但不能直接。

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

有关完整说明和代码,请参见以下StackOverflow答案:

Viewcomponent alternative for ajax refresh

(全称@ daniel-j-g)