如何在传递给视图的模型中使用Equal

时间:2012-03-20 19:49:13

标签: asp.net-mvc asp.net-mvc-3

我必须使用if / else语句输出与用户所做选择相关的货币值。类似的东西:

@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(请参阅下面的价格实体)。

这是radiobutton的枚举:

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;

任何指导?

2 个答案:

答案 0 :(得分:1)

如果ProcessingRadioButtons是枚举,则需要与之比较 - 而不是字符串。请尝试... .Equals(Processing.Standard)。

答案 1 :(得分:1)

您是否正在发送处理ProcessingRadioButtons属性的模型?

除此之外,为什么不使用:

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

它更简单,不依赖于魔术字符串。