我有一个包含几个视图组件的网页,当我点击这些组件时,我打开一个简单的编辑器,见下图。如果我编辑文本并按Enter键,我想重新渲染视图组件而不是孔页面。是否可以使用javascript调用视图组件来获得此行为?
答案 0 :(得分:1)
今天这是不可能的,但如果您愿意,可以为viewcomponents构建标准代理(类似地,您可以为部分视图构建代理)。例如你是行动的一个属性路线。
答案 1 :(得分:1)
通过更新,您现在应该能够使用asp.net核心执行此操作。你可以从IActionResult返回一个ViewComponent,然后用jQuery调用它:
[Route("text-editor")]
public IActionResult TextEditor()
{
return ViewComponent("TextEditorViewComponent");
}
然后可以从您的View中调用这个简单的东西:
function showTextEditor() {
// Find the div to put it in
var container = $("#text-editor-container");
$.get("text-editor", function (data) { container.html(data); });
}
如果您需要将参数传递给ViewComponent,您可以在IActionResult中执行此操作(可能它们从View到那里,再到视图组件等)。