2015-05-04 3 views
-1

Мне нужно включить/отключить определенные элементы управления в представлении в зависимости от состояния. Я пытаюсь использовать ответ в этой ссылке here, но в моем случае это не сработало. В настоящее время я использую (псевдо) код, как показано ниже, который работает, но безумно использовать его, поскольку есть много таких записей. Мне нужно решение, как в hereКак программировать включение/выключение управления в режиме бритвы

@{ if (Model.ChargeCost == true) 
{ 
    @Html.TextBoxFor(m => m.Cost, new { @id="myId", @class = "form-control" }) 
} 
    else 
{ 
    @Html.TextBoxFor(m => m.Cost, new { @id = "myId", @class = "form-control", disabled = "disabled" }) 
} 

UPDATE: Я ИЗВИНИТЬСЯ за недопониманием, но код, что у меня ПРИМЕР работает отлично. Что мне нужно, тот, кто на самом деле имеет более глубокое понимание MVC5 и C#, который может оптимизировать эти страшные КОДЫ, так как я еще много условий, как эти в ЗРЕНИИ ..

+0

Примечание стороны: 'если Model.ChargeCost == true' такое же, как' если Model.ChargeCost' – melancia

+0

You ч ave закрытая цитата: '@class =" form-control, disabled = "disabled" '=>' @class = "form-control", @disabled = "disabled" ' – melancia

+0

Вы используете Visual Studio, а не что-то как Блокнот, не так ли? Intellisense должен был указать на вашу проблему здесь. –

ответ

1

Вы пропустили " здесь:

@class = "form-control, disabled = "disabled" 

Это должно быть, как показано ниже:

@class = "form-control", disabled = "disabled" 

То же самое справедливо и для этого: @id="myId", @class = "form-control.

+0

Спасибо. Я обновил свой вопрос –

0

Вы должны идти, как это:

@Html.TextBoxFor(m => m.Cost, new { @id = "myId", @class = "form-control", disabled = "disabled" }) 

Disabled является атрибутом, а не свойство CSS.

+0

Спасибо. Я обновил свой вопрос –

0

В вашей ViewModel, вы должны создать свойство, контролировать его:

public string controlDisabled { get; set; } 

И в действии, в зависимости от вашего состояния, установите его в положение «отключено»

viewmodel.controlDisabled = condition ? "disabled" : "false"; 

И в виду:

@Html.TextBoxFor(m => m.Cost, new { @id = "myId", @class = "form-control", @disabled = Model.controlDisabled }) 
+0

Это не лучшее решение в моем случае, но я могу работать над идеей. Вы действительно протестировали код, чтобы узнать, работает ли он? –

+0

Да. Работает отлично –

Смежные вопросы