Как использовать Equal в моделях, переданных для просмотра - PullRequest
0 голосов
/ 20 марта 2012

Мне нужно использовать операторы 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 (см. Ниже информацию о ценах).

Это перечисление для радиокнопки:

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 ]

1 голос
/ 20 марта 2012

Отправляете ли вы модель с установленным свойством ProcessingRadioButtons?

Кроме того, почему бы не использовать:

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

это проще и не зависит от волшебных строк.

1 голос
/ 20 марта 2012

Если ProcessingRadioButtons - это перечисление, с которым нужно сравнивать, а не с строкой.Попробуйте ... .Equals (Processing.Standard) вместо этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...