我一直试图弄清楚如何显示是/否而不是bool的true / false结果,以便让我的用户更容易阅读。
我正在使用c#和visual studio 2015,我已经看了一下并尝试在stackoverflow中应用这里提到的一些技术 here和here。
我不确定哪种方法可以解决我的查询问题。简而言之,我有一个数据库表,它包含3列数据类型(例如A,B和C)。这个表是通过使用实体框架来我的MVC项目。
与此表关联的模型将这些列保存为bool。我使用此表列出数据库中的项目,但这些项目的结果显示为用户的True / False(参见下图)。
我尝试更改我的Razor代码以完成此任务但失败了。
@item.AttachmentA.isTrue?"Yes":"No")
我也试过这个,
@Html.DisplayFor(modelItem => item.AttachmentA.isTrue?"Yes":"No")
对于上述两者,我收到了编译错误,
'System.Nullable'不包含'isTrue'的定义,并且没有扩展方法'isTrue'可以找到接受类型'System.Nullable'的第一个参数(你是否缺少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);
}
我已将控制器中的上述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);
}
但是我现在收到两个错误,字符串项“是”,“否”表示,
无法将类型'string'隐式转换为'bool
如果有人对最佳做法有任何建议,请告知你吗?
答案 0 :(得分:1)
如果AttachmentA属性的类型为bool,则使用
@(item.AttachmentA?&#34;是&#34;:&#34;否&#34;)
OR
@ {var isAttachmentA =(item.AttachmentA?&#34; Yes&#34;:&#34; No&#34;);} @ Html.DisplayFor(modelItem =&gt; isAttachmentA)
如果AttachmentA属性的类型为bool? (Nullable bool)然后使用
@(item.AttachmentA.GetValueOrDefault()?&#34;是&#34;:&#34;否&#34;)
OR
@ {var isAttachmentA =(item.AttachmentA.GetValueOrDefault()?&#34; Yes&#34;:&#34; No&#34;);} @ Html.DisplayFor(modelItem =&gt; isAttachmentA)