我有一个视图模型,它有一个简单的bool属性,如下所示:
public bool HasAnyProductsThatRequirePhoneNumber { get; set; }我使用标记助手来生成包含此值的HiddenField,如下所示:
<input type="hidden"
asp-for="@this.Model.HasAnyProductsThatRequirePhoneNumber" />当呈现页面时,我获得以下HTML代码:
<input type="hidden"
id="HasAnyProductsThatRequirePhoneNumber"
name="HasAnyProductsThatRequirePhoneNumber"
value="True" />如您所见,"value"-attribute已以大写(带有大T)呈现。
有什么办法让它更低一点吗?当然,我不能使用像.ToString().ToLower()这样的东西,因为正如您所看到的,我只手动指定asp-for属性,而值-属性是自动填充的。
发布于 2017-11-17 16:09:42
不是的。你不能!
代码将调用布尔表达式/proprety上的ToString方法。布尔值内的 method总是返回True或False
public override String ToString()
{
if (false == m_value)
{
return FalseLiteral;
}
return TrueLiteral;
}其中TrueLiteral和FalseLiteral是具有True和False等值的两个变量。
internal const String TrueLiteral = "True";
internal const String FalseLiteral = "False";但这并不能阻止您将值呈现为true或false。标记助手所做的全部工作就是为输入呈现标记。因此,在您的示例中,您可以简单地用纯html替换对标记助手的调用,并手动设置输入的值。
<input type="hidden"
id="HasAnyProductsThatRequirePhoneNumber"
name="HasAnyProductsThatRequirePhoneNumber"
value="@Model.HasAnyProductsThatRequirePhoneNumber.ToString().ToLower()">发布于 2020-10-06 20:52:25
添加'value‘属性,然后是.ToString().ToLower()布尔值。经修订的守则如下:
<input type="hidden"
asp-for="@this.Model.HasAnyProductsThatRequirePhoneNumber"
value="@this.Model.HasAnyProductsThatRequirePhoneNumber.ToString().ToLower()" />https://stackoverflow.com/questions/47354259
复制相似问题