9
我想将控制器逻辑转移到视图组件类中,但控制器只返回JSON,作为我视图组件的UI的客户端小部件。这是核心控制器代码问题出在哪里:如何从View组件返回JSON?
public IActionResult TreeData(string dir = "")
{
var browsingRoot = Path.Combine(_config.BaseDir, dir);
var nodes = new List<TreeNode>();
nodes.AddRange(RecurseDirectory(browsingRoot));
return Json(nodes);
}
这是好的控制器,但ViewComponent
派生类不喜欢Json
返回方法。我看到的所有例子都使用return View(*<something>*)
。
视图组件不应该返回整个响应,所以我想它应该有一个Content
返回方法来至少返回纯HTML。
文档:https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view -components – Nkosi
尝试在视图中添加一些关于您打算如何使用组件的更多详细信息。将有助于提供答案。 – Nkosi
为什么你需要从你的组件返回json?这不是组件的设计目的。您需要从中返回视图(使用可选模型)。请提供您的看法,可能在viewcomponent中生成html代码可能会有所帮助(您提到的问题,您可以从InvokeAsync中返回纯HTML,但它会对您有帮助吗?) – ingvar