使用 javascript 调用 ViewComponent

Invoke ViewComponent using javascript

我有一个包含几个视图组件的网页,当我单击这些组件时,我会为其打开一个简单的编辑器,请参见下图。如果我编辑文本并按回车键,我想重新呈现视图组件而不是漏洞页面。是否可以使用 javascript 调用视图组件来获得此行为?

这在今天是不可能的,但如果您愿意,您可以为视图组件构建一个标准代理(类似地,您可以为局部视图构建一个代理)。例如你在一个动作上的一个包罗万象的属性路由。

通过更新,您现在应该可以使用 asp.net 核心来执行此操作。您可以 return 来自 IActionResult 的 ViewComponent,然后只需使用 jQuery:

调用它
[Route("text-editor")]
public IActionResult TextEditor()
{
    return ViewComponent("TextEditorViewComponent");
}

然后可以通过如下简单的方式从您的视图中调用它:

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 传递到那里,传递到视图组件等)。