在任何元素上复制 asp-for 功能

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

ASP.NET Core 的

<input>
<label>
标记帮助程序支持
asp-for
属性,该属性会相应地生成
id
name
for

是否可以以某种方式获取这些值并将其用于其他元素?

例如这个:

<input [email protected] />
<div [email protected]=>Foo</div>

渲染此:

<input id="User_Name" name="User.Name" ... />
<div [email protected]>Foo</div>

显然

asp-for
不适用于
div
,但我想做类似的事情。这可能吗?

(目前,我要么对值进行硬编码,要么使用一些涉及多个

nameof
调用的组合。我更喜欢与
asp-for
类似的动态解决方案。)

c# asp.net-core razor-pages asp.net-core-tag-helpers asp.net-core-7.0
1个回答
0
投票

感谢@browsermator的评论,这可以使用

IHtmlHelper<TModel>

这些是 ASP.NET 的重要组成部分,几乎在年前——即在 ASP.NET Core 之前——所以我完全忘记了它们。它们仍然可用。

假设我有一个输入,并且想从一些相关元素引用它(通过 JavaScript):

<input [email protected] ... />
<div for="@(Html.IdFor(x => x.User.Name))">Foo</div>

呈现:

<input id="User_Name" name="User.Name" ... />
<div for="User_Name">Foo</div>

也可以使用

Html.NameFor
或任何其他合适的东西。

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