【发布时间】:2020-04-16 18:35:25
【问题描述】:
我做了一个组件:
public class CatSearchComponent : ViewComponent
{
public async Task<IViewComponentResult> InvokeAsync()
{
return View();
}
}
@await Component.InvokeAsync("CatSearchComponent")
在组件中,我有一个按钮,我想使用 jquery $.ajax 来调用方法并在组件中呈现一些数据,例如一个名为 GetCats() 的操作,它返回一些 Json 数据。
最好将此方法放入组件中,因为它是特定于组件的。
但是我不确定将什么 url 放入我的 $.ajax 调用中以调用这样的方法,或者即使它在 MVC 中是允许的。
我可以创建一个新控制器并对其执行操作以获取数据,但如果它与我的 ViewComponent 结合使用会更好。有没有办法做到这一点?
【问题讨论】:
-
我不认为这是可行的。除了在 mvc 模式中使用控制器之外,我没有看到任何解决方法。
-
没有。将视图组件视为一种将一些复杂逻辑包装在部分周围的简单方法。它不是继续存在的东西,也不是像控制器这样对请求做出反应的东西;它在视图渲染期间被实例化,然后被转储。
-
我实在是根本看不到视点组件,你还不如干脆创建一个我觉得的控制器。除非我缺少某些优势,否则它就像一个控制器,迫使您只有一种方法
标签: c# asp.net-core-mvc asp.net-core-2.2