2012-03-20 66 views
0

我不得不使用if/else語句來輸出綁定到用戶選擇的貨幣值。喜歡的東西:如何在傳遞查看的模型中使用Equal

@if (Model.ProcessingRadioButtons.Equals("Standard")) 
{ 
    @Html.DisplayFor(m => m.priceProcessingStandard) 
} 
else if (Model.ProcessingRadioButtons.Equals("Expedited")) 
{ 
    @Html.DisplayFor(m => m.priceProcessingExpedited) 
} 
else if (Model.ProcessingRadioButtons.Equals("Urgent")) 
{ 
    @Html.DisplayFor(m => m.priceProcessingUrgent) 
} 

但它不顯示基於單選按鈕我選擇什麼,所以我知道if/else if陳述是錯誤的。我把最後一個else if變成了else,拿出了(Model.ProcessingRadioButtons.Equal("Urgent")),它顯示500(見下面的價格實體)。

這是單選按鈕的枚舉:

public enum Processing 
{ 
    Standard, 
    Expedited, 
    Urgent 
} 

和無線電按鈕實體(使用助手來完成的單選按鈕):

public Processing? ProcessingRadioButtons { get; set; } 

這些是價格的實體:

[DataType(DataType.Currency)] 
[DisplayFormat(DataFormatString = "{0:c}")] 
public decimal priceProcessingStandard = 0; 

[DataType(DataType.Currency)] 
[DisplayFormat(DataFormatString = "{0:c}")] 
public decimal priceProcessingExpedited = 250; 

[DataType(DataType.Currency)] 
[DisplayFormat(DataFormatString = "{0:c}")] 
public decimal priceProcessingUrgent= 500; 

任何指導?

回答

1

您是否正在發送帶有ProcessingRadioButtons屬性集的模型?

放在一邊,爲什麼不使用:

@if (Model.ProcessingRadioButtons == Processing.Standard) 

它更簡單,不依賴於魔術字符串。

+0

謝謝。您的解決方案允許顯示貨幣符號'$'。不知道爲什麼,否則兩個答案都是正確的,但你的更簡潔。 – REMESQ 2012-03-20 20:26:38

+0

任何想法,爲什麼我必須「解決」'Processing'爲'Namespace.ViewModels.MyData.Processing'?我明顯有'@ using'語句。 – REMESQ 2012-03-20 20:27:43

+0

而不是放置「@using」語句,你可以簡單地使用完全限定名......在你的情況下「Namespace.ViewModels.MyData.Processing」...和si如果這是正確的,並且移動它到@using。 – Romias 2012-03-20 20:46:07

1

如果ProcessingRadioButtons是一個枚舉,則需要將它與之比較 - 而不是字符串。試試...... .Equals(Processing.Standard)。

+0

雖然你的回答是正確的,你先回答,但是給了Romias。在這兩種情況下,我都必須使用Processing來「解決」命名空間問題,在這種情況下,它的'Namespace.ViewModels.MyData.Processing'。但是你的解決方案不會在視圖中顯示貨幣符號'$',我不知道爲什麼。 – REMESQ 2012-03-20 20:25:57

+1

對我無關緊要。據我所見,我們兩人都提出了同樣的事情,只有不同的平等比較風格。貨幣符號的顯示與if語句無關,但與DisplayFor函數的使用方式無關。很高興它爲你解決,但! – 2012-03-20 21:57:47

+0

http://stackoverflow.com/questions/9797715/how-can-i-sum-two-different-selections-passed-to-model。開始了這個問題,然後在工作中陷入困境,我忘了問我的問題的第二部分(請注意,我在這裏更改了標題) – REMESQ 2012-03-21 02:11:40