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