使用 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 传递到那里,传递到视图组件等)。
我有一个包含几个视图组件的网页,当我单击这些组件时,我会为其打开一个简单的编辑器,请参见下图。如果我编辑文本并按回车键,我想重新呈现视图组件而不是漏洞页面。是否可以使用 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 传递到那里,传递到视图组件等)。