объект viewdata контроллера в jquery - PullRequest
0 голосов
/ 16 декабря 2009

Я новичок в MVC и JQuery В моем контроллере у меня есть ViewData [ "а"] = "истина"; Я хочу получить доступ к объекту viewdata в jquery <% if (ViewData ["a"] == "true")%> { $ ( '# Div1') шоу (). } Вышеуказанный jquery не работает для меня Может кто-нибудь, пожалуйста, пролить свет на это. Заранее спасибо

Ответы [ 3 ]

3 голосов
/ 17 декабря 2009
<script type="text/javascript">
    var ViewData_a = "<%= ViewData["a"] %>";
</script>

...

<script type="text/javascript">
    $(document).ready(function() {
        if(ViewData_a) {
            $('#div1').show();
        }
</script>
0 голосов
/ 17 декабря 2009

Пока вы это делаете, рассмотрите возможность использования JSTL / EL вместо скриптлетов.

Итак ...

<%= ViewData["a"] %>

становится ...

<c:out value="${ViewData.a}"/>

JSTL / EL часто дает вам некоторые вещи бесплатно. Как и в этом примере, значение ViewData ["a"] будет автоматически закодировано.

0 голосов
/ 17 декабря 2009

Вы не можете получить доступ к своим ViewData таким образом. Вам нужно будет сделать что-то вроде ввода значения в, скажем, скрытое поле, а затем проверить это.

if ($('.HdnFieldClassName').val() == "true")
{
  $('#div1').show();
}

Или что-то в этом роде.

Не уверен, что вы можете сделать что-то вроде

if ( '<%= ViewData["a"] %>' == "true"

Я не знаю о других людях, но я не большой поклонник использования имен элементов управления в jQuery. Я предпочитаю использовать имя класса для захвата элемента управления.

<input type='text' class="jQueryMyTextBox" id='MyTextBox'>

$('.jQueryMyTextBox').val()

Это просто означает, что если имя элемента управления изменится, ваш код все еще будет работать, и теперь вы сможете делиться кодом между формами и т. Д.

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