gpt4 book ai didi

c# - ViewData.TemplateInfo.GetFullHtmlFieldId ("PropertyName"的 ASP.NET Core 等效项是什么)?

转载 作者:行者123 更新时间:2023-12-01 14:17:35 27 4
gpt4 key购买 nike

我正在将 Web 应用程序迁移到 .NET Core,它使用一些 Razor 编辑器模板用于特定输入类型(例如,为任何 date 模型属性输出 DateTime 输入)。

几个模板使用以下方法来获取 ID 属性值,以便在 HTML 中的其他地方使用:

ViewData.TemplateInfo.GetFullHtmlFieldId("PropertyName")

但是,这种方法似乎不再存在于 ASP.NET Core 中。
GetFullHtmlFieldName方法仍然存在,因此可以通过执行以下操作获得相同的结果(至少对于我测试过的所有内容):
Regex.Replace(ViewData.TemplateInfo.GetFullHtmlFieldName("PropertyName"), @"[\.\[\]]", "_")

但这对我来说似乎有点不整洁,更不用说旧方法可能会处理一些我不知道的边缘情况。

谷歌搜索半小时,阅读 .NET Core docs并且搜索 SO 没有发现任何有用的东西。我唯一能找到的与远程相关的是 this answer (这只是确认该方法已消失)。

有谁知道为什么 GetFullHtmlFieldId不复存在?这只是一个偶然的遗漏,还是现在有更新更好的方法来获得它?

最佳答案

我查看了 ASP.NET Core 存储库,它看起来像 TemplateInfo.GetFullHtmlFieldId()originally removed由于对 HtmlHelper 的静态引用.

经过大量挖掘(.NET Core 源浏览器是一个非常有用的工具),我认为解决我的问题的方法是使用 IHtmlHelper.GenerateIdFromName .所以,这段代码:

ViewData.TemplateInfo.GetFullHtmlFieldId("PropertyName")

现在应该写成:
Html.GenerateIdFromName(ViewData.TemplateInfo.GetFullHtmlFieldName("PropertyName"))

仍然不是那么整洁(或一致),但至少我们以这种方式重新使用 the same internal logic框架用于构建其 ID。

关于c# - ViewData.TemplateInfo.GetFullHtmlFieldId ("PropertyName"的 ASP.NET Core 等效项是什么)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56488775/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com