我制作了一个组件:
public class CatSearchComponent : ViewComponent
{
public async Task<IViewComponentResult> InvokeAsync()
{
return View();
}
}
@await Component.InvokeAsync("CatSearchComponent")
在组件内,我有一个按钮,我想使用jquery $ .ajax调用方法并在组件内呈现一些数据,例如一个名为GetCats()
的操作,该操作返回一些Json数据。
最好将此方法放入组件中,因为它是特定于组件的。
但是我不确定在$ .ajax调用中将放入什么URL来调用这样的方法,或者即使在MVC中允许使用。
我可以创建一个新的控制器并对其进行操作以获取数据,但是如果将其与我的ViewComponent结合使用,那就太好了。有办法吗?
您可以,但不能直接。
您可以在MVC控制器中创建ActionResult,该控制器将返回ViewComponent结果;然后,在JavaScript / jQuery中,调用控制器。
请参阅此StackOverflow答案以获取完整的描述和代码:
Viewcomponent alternative for ajax refresh
(对@ daniel-j-g表示感谢)