Jos*_*cht 10 ajax asp.net-core asp.net-core-viewcomponent
我正在玩MVC 6,并且有一个用户网格,目前已注册到我的网站.在网格之上,我为搜索/过滤功能构建了一个View Component.它是通过调用
@Component.Invoke("UserSearchBar")
Run Code Online (Sandbox Code Playgroud)
其中一个要求是能够保存并重新应用下拉列表的值,以便最终用户可以快速访问他/她经常使用的搜索.我在所有已保存搜索的View Component中添加了一个下拉列表.
一旦用户保存搜索,我想重新加载UserSearchBar视图组件以更新下拉列表.
我的问题是:
我可以在View Component中使用Partial来下拉.或者以编程方式向下拉列表添加元素,但是当我单击按钮应用其中一个已保存的搜索时,我仍然会遇到重新加载视图组件的相同问题.
解
在编写问题时仔细考虑了问题后,我提出了一种更好(更正确?)的方法,不涉及重新加载View Component.在保存时,对保存搜索方法进行ajax调用,并在下拉列表中添加元素.在保存的搜索应用中,调用一个方法,该方法将返回已保存的搜索并应用它.
但是,我仍然想知道是否有可能(以及如何)在MVC 6中重新加载View Component.
Rya*_*ski 18
您需要做的就是在控制器中设置一个返回视图组件的路径.例如:
public class MyController : Controller {
public IActionResult GetMyViewComponent() {
return ViewComponent("MyViewComponent", <arguments...>);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过AJAX向此控制器发出GET请求,并将旧视图组件替换为请求的结果.
至于你是否应该使用部分或视图组件,这取决于你,但我建议坚持使用视图组件,因为它允许你在组件本身内保留搜索栏的相关逻辑.
| 归档时间: |
|
| 查看次数: |
6690 次 |
| 最近记录: |