【发布时间】:2021-08-06 18:20:33
【问题描述】:
我正在使用 ASP.NET Core 5.0 构建 Web 应用 (MVC) 的项目。我尝试使用Html.RenderAction 扩展方法,但出现以下错误。
编译错误:
Html.RenderAction CS1061: IHtmlHelper<dynamic> does not contain a definition for 'RenderAction'
我做错了什么?
为了提供更多上下文,我想使用直接从数据库加载的数据在_Layout.cshtml 中呈现部分视图。
这是我的_Layout.cshtml的内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384- EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<link rel="stylesheet" href="~/dist/css/main.css" media="all" />
<title>@ViewData["Title"]: my webpage</title>
</head>
<body id="body">
<!-- Header -->
<header id="header">
<!-- Navigation -->
<nav id="nav">
<partial name="../Shared/Components/_navBar.cshtml" />
<partial name="../Shared/Components/_headerSearchBar.cshtml" />
</nav>
@{ Html.RenderAction("GetCategories"); }
</header>
<!-- Main -->
<main role="main" class="main-wrapper">
<div class="home main-content">
@RenderBody()
</div>
</main>
<!-- Footer -->
<footer class="footer">
<partial name="../Shared/Components/_footer.cshtml" />
</footer>
<script src="~/js/script.js" asp-append-version="true"></script>
@*<script src="~/js/scriptanim.js" asp-append-version="true"></script>*@
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
这是控制器中将数据加载到局部视图的操作方法
public async Task<IActionResult> GetCategories()
{
var categories = await _fashionBuyRepository.GetAllCategoriesAsync();
return PartialView("_productCategoriesHeader", categories);
}
【问题讨论】:
-
我相信此链接可能适用。请查看并让我们知道结果:stackoverflow.com/a/47065308/421195。另外:请尽可能复制/粘贴文本。不鼓励在 SO 上截屏:meta.stackoverflow.com/questions/303812
-
ASP.NET MVC(不是Core)的继承者Html.Action和Html.RenderAction都是View Components,见docs.microsoft.com/en-us/aspnet/core/mvc/views/…
-
著名@paulsm4。我使用屏幕截图来显示错误消息是什么。还提供了代码的副本。我正在努力,当我实施可能的解决方案时会更新。
标签: c# .net-core asp.net-core-mvc