首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制隐藏字段的标记助手以小写形式呈现bool值

如何强制隐藏字段的标记助手以小写形式呈现bool值
EN

Stack Overflow用户
提问于 2017-11-17 15:39:28
回答 2查看 1.8K关注 0票数 1

我有一个视图模型,它有一个简单的bool属性,如下所示:

代码语言:javascript
复制
public bool HasAnyProductsThatRequirePhoneNumber { get; set; }

我使用标记助手来生成包含此值的HiddenField,如下所示:

代码语言:javascript
复制
<input type="hidden"
       asp-for="@this.Model.HasAnyProductsThatRequirePhoneNumber" />

当呈现页面时,我获得以下HTML代码:

代码语言:javascript
复制
<input type="hidden" 
       id="HasAnyProductsThatRequirePhoneNumber" 
       name="HasAnyProductsThatRequirePhoneNumber" 
       value="True" />

如您所见,"value"-attribute已以大写(带有大T)呈现。

有什么办法让它更低一点吗?当然,我不能使用像.ToString().ToLower()这样的东西,因为正如您所看到的,我只手动指定asp-for属性,而值-属性是自动填充的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-17 16:09:42

不是的。你不能!

代码将调用布尔表达式/proprety上的ToString方法。布尔值内的 method总是返回TrueFalse

代码语言:javascript
复制
public override String ToString()
{
   if (false == m_value)
   {
       return FalseLiteral;
   }
   return TrueLiteral;
 }

其中TrueLiteralFalseLiteral是具有TrueFalse等值的两个变量。

代码语言:javascript
复制
internal const String TrueLiteral  = "True";
internal const String FalseLiteral = "False";

但这并不能阻止您将值呈现为truefalse。标记助手所做的全部工作就是为输入呈现标记。因此,在您的示例中,您可以简单地用纯html替换对标记助手的调用,并手动设置输入的值。

代码语言:javascript
复制
 <input type="hidden"  
    id="HasAnyProductsThatRequirePhoneNumber"
    name="HasAnyProductsThatRequirePhoneNumber" 
   value="@Model.HasAnyProductsThatRequirePhoneNumber.ToString().ToLower()">
票数 4
EN

Stack Overflow用户

发布于 2020-10-06 20:52:25

添加'value‘属性,然后是.ToString().ToLower()布尔值。经修订的守则如下:

代码语言:javascript
复制
<input type="hidden"
   asp-for="@this.Model.HasAnyProductsThatRequirePhoneNumber" 
   value="@this.Model.HasAnyProductsThatRequirePhoneNumber.ToString().ToLower()" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47354259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档