在结果C#

时间:2017-07-04 11:13:30

标签: c# asp.net-mvc asp.net-mvc-4 razor boolean

我一直试图弄清楚如何显示是/否而不是bool的true / false结果,以便让我的用户更容易阅读。

我正在使用c#和visual studio 2015,我已经看了一下并尝试在stackoverflow中应用这里提到的一些技术 herehere

我不确定哪种方法可以解决我的查询问题。简而言之,我有一个数据库表,它包含3列数据类型(例如A,B和C)。这个表是通过使用实体框架来我的MVC项目。

与此表关联的模型将这些列保存为bool。我使用此表列出数据库中的项目,但这些项目的结果显示为用户的True / False(参见下图)。

Screen Shot of results

我尝试更改我的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

如果有人对最佳做法有任何建议,请告知你吗?

1 个答案:

答案 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)