C# 在结果C中显示是/否而不是布尔真假#
我一直在试图找出如何显示yes/no,而不是bool结果true/false,以便于我的用户阅读 我正在使用c#和visual studio 2015,我已经看过并尝试应用stackoverflow中提到的一些技术 和 我不确定哪种方法是解决我的问题的最好方法。简而言之,我有一个数据库表,其中包含3列位数据类型(例如a、B和C)。此表是通过使用实体框架向我的MVC项目提供的 与此表关联的模型将这些列保存为bool。我可以使用此表列出数据库中的项目,但是这些项目的结果对用户显示为真/假(请参见下图) 我试图更改Razor代码以完成此任务,但失败C# 在结果C中显示是/否而不是布尔真假#,c#,asp.net-mvc,asp.net-mvc-4,razor,boolean,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,Boolean,我一直在试图找出如何显示yes/no,而不是bool结果true/false,以便于我的用户阅读 我正在使用c#和visual studio 2015,我已经看过并尝试应用stackoverflow中提到的一些技术 和 我不确定哪种方法是解决我的问题的最好方法。简而言之,我有一个数据库表,其中包含3列位数据类型(例如a、B和C)。此表是通过使用实体框架向我的MVC项目提供的 与此表关联的模型将这些列保存为bool。我可以使用此表列出数据库中的项目,但是这些项目的结果对用户显示为真/假(请参见下图
@item.AttachmentA.isTrue?"Yes":"No")
我也试过这个,
@Html.DisplayFor(modelItem => item.AttachmentA.isTrue?"Yes":"No")
对于以上两种情况,我得到的编译错误是
“System.Nullable”不包含“isTrue”的定义,并且找不到接受“System.Nullable”类型的第一个参数的扩展方法“isTrue”(是否缺少using指令或程序集引用?)
我似乎不能完全使上述工作正常进行。我是否能够在控制器中完成if语句以完成此操作
我试图用下面的代码来完成这项工作,但这似乎不起作用
// GET: View for ACTIVE items and set status of the bool for true / false
public ActionResult Active()
{
List<vwStatusActive> clientRecordsActive = db.vwStatusActives.ToList();
foreach (vwStatusActive active in clientRecordsActive)
{
if (vwStatusActive == true)
{
vwStatusActive = 'Yes';
}
else
{
vwStatusActive = 'No';
}
}
return View(clientRecordsActive);
}
//GET:查看活动项并将bool的状态设置为true/false
公共行动结果活动()
{
List clientRecordsActive=db.vwStatusActives.ToList();
foreach(vwStatusActive在clientRecordsActive中处于活动状态)
{
如果(vwStatusActive==真)
{
vwStatusActive='是';
}
其他的
{
vwStatusActive='否';
}
}
返回视图(clientRecordsActive);
}
我已将控制器中的上述if语句更改为现在保存bool true/false的变量
// GET: View for ACTIVE items and set status of the bool for true / false
public ActionResult Active()
{
List<vwStatusActive> clientRecordsActive = db.vwStatusActives.ToList();
bool t = true;
bool f = false;
foreach (vwStatusActive active in clientRecordsActive)
{
if (t == true)
{
t = "Yes";
}
else
{
t = "No";
}
}
return View(clientRecordsActive);
}
//GET:查看活动项并将bool的状态设置为true/false
公共行动结果活动()
{
List clientRecordsActive=db.vwStatusActives.ToList();
bool t=真;
bool f=假;
foreach(vwStatusActive在clientRecordsActive中处于活动状态)
{
如果(t==true)
{
t=“是”;
}
其他的
{
t=“否”;
}
}
返回视图(clientRecordsActive);
}
但是,我现在得到两个字符串项“Yes”,“No”的错误
无法将类型“string”隐式转换为“bool”
如果有人对最佳实践有任何建议,请您提供建议。如果AttachmentA属性为bool类型,请使用 @(项目附件?“是”:“否”) 或 @{var isAttachmentA=(item.AttachmentA?“是”:“否”);} @DisplayFor(modeleItem=>isAttachmentA)
如果AttachmentA属性为bool类型?(可空布尔)然后使用 @(item.AttachmentA.GetValueOrDefault()?“是”:“否”) 或 @{var isAttachmentA=(item.AttachmentA.GetValueOrDefault()?“是”:“否”);}
@DisplayFor(modelItem=>isAttachmentA)如果AttachmentA属性的类型为bool,则使用 @(项目附件?“是”:“否”) 或 @{var isAttachmentA=(item.AttachmentA?“是”:“否”);} @DisplayFor(modeleItem=>isAttachmentA)
如果AttachmentA属性为bool类型?(可空布尔)然后使用 @(item.AttachmentA.GetValueOrDefault()?“是”:“否”) 或 @{var isAttachmentA=(item.AttachmentA.GetValueOrDefault()?“是”:“否”);}
@DisplayFor(modelItem=>isAttachmentA)Hi!请编辑您的问题,用实际的编译器错误/运行时错误替换“不工作”。谢谢您正在尝试将值分配给类型。无论如何,多一点代码和错误将有助于关注这个问题。存储渲染字符串的变量在哪里?请参见此处更改dropwdown显示值的示例:yur代码中缺少起始括号和@。照这样做,让我知道@(item.AttachmentA.isTrue?“是”:“否”)什么是
vwStatusActive
?您将其用作类型(List
),然后根据bool
测试它,然后尝试分配字符串
值。您好!请编辑您的问题,用实际的编译器错误/运行时错误替换“不工作”。谢谢您正在尝试将值分配给类型。无论如何,多一点代码和错误将有助于关注这个问题。存储渲染字符串的变量在哪里?请参见此处更改dropwdown显示值的示例:yur代码中缺少起始括号和@。照这样做,让我知道@(item.AttachmentA.isTrue?“是”:“否”)什么是vwStatusActive
?将其用作类型(List
),然后根据bool
对其进行测试,然后尝试分配一个字符串
值。