gpt4 book ai didi

c# - 是否可以将 ModelExpression 传递给 TagHelper?

转载 作者:太空狗 更新时间:2023-10-29 21:59:57 25 4
gpt4 key购买 nike

我们可以得到一个ModelExpression在 TagHelper 中使用此属性:

[HtmlAttributeName("asp-for")]
public ModelExpression For { get; set; }

我以某种方式设法*拥有一个具有 ModelExpression 的 ViewModel属性:

public class TemplateViewModel
{
public ModelExpression For { get; set; }
}

每次我尝试传递它时,模型表达式都是 For来自 TemplateViewModel ,而不是存储在 For 中的真实表达式:

@model TemplateViewModel
<input asp-for="@Model.For" class="form-control"/>

以上结果:

<input class="form-control" type="text" id="For" name="For" value="Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression" />

我预料到,输入由 ModelExpression 描述而不是字面上的 ModelExpression对于 ModelExpression .

*因为我想使用 IHtmlHelper::PartialView() 为 TagHelper 创建一个模板 View .这个例子是重度最小化。我的主要动机是创建一个单一的 <form-group for="" /> TagHelper,它正在生成 Bootstrap Form Group .

最佳答案

ModelExpressionRazor Compiler 中作为特例处理,所以这不会直接起作用。由于编译器是开源的,您可以建议一个补丁来忽略属性本身是 ModelExpression 的情况。 .同时,您将需要在标签助手中使用不同类型的属性,以帮助您获得对实际 ModelExpression 的引用。 .也许public Func<ModelExpression> ForAccessor { get; set; }

关于c# - 是否可以将 ModelExpression 传递给 TagHelper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47125008/

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