[英]true instead of True (C#)
從Controller到View返回true
而不是True
。
我將一個布爾值存儲到變量中,該布爾值指示產品是否存在於購物車/摘要中。
要實現這一點,我正在做以下事情:
[...]
IsAdded = sessionStore.CheckExistanceOnSummary(product.productId)
[...]
但是,當我在View上顯示IsAdded
的值時,返回為True
或False
- 並且JavaScript期望為true
或false
。
我需要的是發送true
或false
而不是C#發送的方式。
我已經嘗試為此更改上面的代碼片段:
IsAdded = (sessionStore.CheckExistanceOnSummary(product.productId) ?
"true" :
"false")
但調試器返回以下錯誤:
錯誤5無法將類型'string'隱式轉換為'bool'
CheckExistanteOnSummary
的實現是:
public bool CheckExistanceOnSummary(Nullable<int> productId)
{
List<Products> productsList =
(List<Products>)Session[summarySessionIndex];
if (productsList.Where
(product => product.id == (int)productId).FirstOrDefault() == null)
return false;
else
return true;
}
我讀了這個主題 ,但沒有幫助我。
作為布爾值( bool
),值將始終為“True”或“False”。 如果要在轉換為字符串時以不同方式表示它們,可以在視圖中執行以下操作:
@Model.IsAdded.ToString().ToLower()
這不起作用,因為IsAdded是布爾值,“true”是字符串
IsAdded = (sessionStore.CheckExistanceOnSummary(product.productId) ?
"true" :
"false")
嘗試在javascript中使用它將其轉換為Lowcase()。
為了可重用性,您可以為bool創建一個“true”/“false”的顯示模板:
創建一個名為“JsBoolean.cshtml”的顯示模板:
在您的視圖中,使用@Html.DisplayFor()
並指定新模板。
JsBoolean.cshtml:
@model Boolean
@(Model ? "true" : "false")
在你看來:
@Html.DisplayFor(m => m.IsAdded, "JsBoolean")
使用此方案,您為javascript目的添加了“可重用性”。 您也可以使用此(如果需要)將布爾值顯示為“是”或“否”或其他內容。
編輯:
如果您的布爾值始終為小寫,則可以通過將其自定義視圖稱為“Boolean.cshtml”來使其成為默認視圖。 然后,您可以簡化您的使用:
@Html.DisplayFor(m => m.IsAdded)
您可以添加一個額外的只讀屬性(例如jsIsAdded),它返回IsAdded.ToString()。ToLower()。
也許您可以合並以下代碼:
IsAdded.ToString().ToLower();
有點像:
public string JSCheckExistanceOnSummary(Nullable<int> productId)
{
return CheckExistanceOnSummary(productId).ToString().ToLower();
}
你能用一點嗎? 無論這種方式如何,都是0或1。 大多數bool也很有可能(例如檢查sql)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.