Как передать логическое значение ViewModel в функцию jquery? - PullRequest
4 голосов
/ 31 октября 2011

Я бы хотел, чтобы div показывал, если для ViewModel bool установлено значение true.

Я пробовал это:

$(function () {
    $("#myDiv").toggle(@Model.IsRequired);
}

Но @Model.IsRequired отображается как "True" или«Ложь», а не «правда» или «ложь».

Есть идеи?

Ответы [ 3 ]

11 голосов
/ 31 октября 2011

Вы можете просто написать @Model.IsRequired.ToString().ToLower().

Я не думаю, что есть лучшее решение (кроме вашего собственного метода расширения)

3 голосов
/ 31 октября 2011

Некоторые альтернативы строковому регистру:

Использование троичного оператора с реальными строками

$(function () {
    $("#myDiv").toggle(@(Model.IsRequired?"true":"false"));
}

или вы можете выводить различные вызовы в зависимости от значения

$(function () {
    @if (Model.Required)
    {
        $("#myDiv").toggle(true);
    }
    else
    {
        $("#myDiv").toggle(false);
    }
}

или объединить их

$(function () {
    @(Model.IsRequired
         ?"$('#myDiv').toggle(true);"
         :"$('#myDiv').toggle(false);")
}
0 голосов
/ 22 ноября 2017

Вот еще один способ использования jQuery / javascript:

Markup:

<... onclick='HandleClick()' ... />

Сценарий:

function HandleClick() {
    var isRequired = '@Model.IsRequired';
    if (isRequired === 'True') {
        $('#myDiv').toggle(true);
    } else {
        $('#myDiv').toggle(false);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...