我在數據庫中有一個位域,我想在我的HTML視圖上顯示爲「是」或「否」 如何使用三元(?:)運算符執行此操作?強類型HTML視圖中的三元運算符
這是我的,但它顯示所有記錄「否」。
<%= Html.Encode(Convert.ToString(item.IsValid) == "True" ? "Yes" : "No")%>
我在數據庫中有一個位域,我想在我的HTML視圖上顯示爲「是」或「否」 如何使用三元(?:)運算符執行此操作?強類型HTML視圖中的三元運算符
這是我的,但它顯示所有記錄「否」。
<%= Html.Encode(Convert.ToString(item.IsValid) == "True" ? "Yes" : "No")%>
有兩種方法可以解決這個問題。
1)似乎的IsValid如何已經是一個布爾值,只取值
<%= item.IsValid ? "Yes" : "No"%>
2)如果硬要將其轉換,使用等於與StringComparison.InvariantCultureIgnoreCase標誌
<%= Convert.ToString(item.IsValid).Equals("True", StringComparison.InvariantCultureIgnoreCase) ? "Yes" : "No"%>
獲取錯誤:CS0029:無法使用第一種方法將類型'字符串'隱式轉換爲'bool' 。並且錯誤:System.NullReferenceException:對象引用未設置爲對象的實例。 與你的第二種方法 – user793468 2013-03-21 17:52:36
你確認IsValid有價值嗎?模型中的定義是什麼? – 2013-03-21 17:56:39
我的錯誤,檢查錯誤的表的價值。有效!謝謝 – user793468 2013-03-21 17:59:03
爲什麼要轉換爲字符串?這應該只是工作假設IsValid
是一個布爾值:
<%= Html.Encode(item.IsValid) == true ? "Yes" : "No")%>
如果這是你想要的東西喜歡的字符串:
<%= Html.Encode(item.IsValid.ToLower() == "true" ? "Yes" : "No")%>
或者更簡單 -
<%= Html.Encode(item.IsValid ? "Yes" : "No") %>
獲取錯誤:CS0029:不能隱式地將類型'字符串'轉換爲'布爾' – user793468 2013-03-21 17:54:54
顯然,您的item.IsValid是字符串;不bool!如果它是布爾,電腦不會抱怨,因爲它不需要轉換! – Felix 2013-03-21 23:25:07
通常情況下,你可以使用如下:
<%: item.IsValid ? "Yes" : "No" %>
這將解決您的問題。
對,不需要編碼,如果你知道字符串只是「是」或「否」 – Faust 2013-03-21 17:47:36
獲取錯誤:CS0029:不能隱式地將類型'字符串'轉換爲'布爾' – user793468 2013-03-21 17:53:30
也「無效」。 「=」does – user793468 2013-03-21 17:54:22
進行比較什麼類型是'item.IsValid'? – Lloyd 2013-03-21 17:40:48
如果'item.IsValid'已經是一個布爾值,則不應該將其轉換爲字符串。 – jmoerdyk 2013-03-21 17:42:06
爲什麼你的html編碼一個永遠不可能有值需要編碼的值? – 2013-03-21 17:44:53