无法将部分视图渲染到隐藏字段中

问题描述 投票:0回答:1

在我们之前的 .NET 4.8 项目中,我们能够将部分视图的输出呈现为文本,如下所示:

@Html.Hidden("hdnContent", Html.Partial("~/Views/Shared/_content.cshtml", Model).ToHtmlString())

这工作得很好 - 部分的 HTML 输出被捕获为隐藏字段中的字符串。

但是,当我尝试在 ASP.NET Core 9.0 MVC 中执行相同的操作时,隐藏字段中会呈现以下内容:

Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBuffer

在渲染局部时,我尝试了几种不同的方法,如下所示:

@{
      var content = (await Html.PartialAsync("~/Views/Shared/_content.cshtml", Model)).ToString();
}

@Html.Hidden("hdnContent", content)

但我始终看到相同的结果。

有没有办法实现我之前在 .NET 4.8 中实现的功能?

asp.net-core-mvc razor-pages .net-9.0
1个回答
0
投票

我设法通过编写自定义视图渲染器解决了这个问题。

以下问题/答案帮助我解决了这个问题:Return View as String in .NET Core

特别是 Pharylon 的回答。

© www.soinside.com 2019 - 2024. All rights reserved.