Подтвердить что ты не робот

Как вставить код С# в javascript на cshtml странице MVC3 Razor

как бы я сделал эквивалент этого встроенного в JavaScript на странице aspx MVC2:

if (('<%= Model.SomeFunctionEnabled %>' == 'True'), а также целый блок кода функции на странице просмотра Razor (cshtml) в MVC3?

Что-то вроде:

@{
    foreach(var d in Model.Employees)
    {
        ....
    }
}

Что отлично работает при встраивании в HTML-страницу страницы просмотра. Благодаря

4b9b3361

Ответ 1

Зачем тестировать на стороне клиента, когда вы можете сделать это на стороне сервера, и включить javascript, чтобы действовать соответственно, если тест преуспеть:

<script type="text/javascript">
    @if (Model.SomeFunctionEnabled) {
        <text>
        // Put your javascript code here
        alert('the function is enabled');
        </text>
    }
</script>

Ответ 2

Если вы хотите выполнить логику в JavaScript:

if ('@Model.SomeFunctionEnabled' == 'True') {
}

Но это приводит к условию, которое всегда оценивает один и тот же результат. Так что вам лучше с ответом Дарина сделать все тестирование на сервере.

Если ваш тест, однако, такой динамический, как этот, который не может быть выполнен на сервере. Вы можете получить содержимое своей переменной С# с помощью знака @.

@{
    var elementID = GetMyGeneratedElementID();
}

<div id="@elementID">...</div>
<script>
   function MyAmazingJavascriptElementHandler() {
       if ($("#@elementID").SomeTest()) {
          DoMyAmazingJavascript();
       }
   }
</script>