Куда уходит код jquery в частичном представлении? - PullRequest
0 голосов
/ 21 января 2010

Я новичок в asp.net MVC и JQuery. Я создал сайт MVC с помощью учебника NerdDinner. Для создания и редактирования представлений я использую частичное представление (код, упрощенный ниже) для ввода данных. Где бы я разместить свой код JQuery?

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Marlow.Controllers.SubcontractFormViewModel>" %>

<% using (Html.BeginForm()) {%>

    <fieldset>
        <legend>Fields</legend>
        <p>
            <label for="grp">group:</label>
            <%= Html.DropDownList("grp", Model.Groups) %>
            <%= Html.ValidationMessage("grp", "*") %>
        </p><p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>

<% } %>

Ответы [ 4 ]

1 голос
/ 22 января 2010

Я не уверен в том, что вы можете разместить код jQuery где угодно.

У меня большой интерес к разделению проблем, и в этом случае может быть целесообразно поместить код в фактическое представление, а не в PartialView.

Я говорю это потому, что как только вы помещаете код в PartialView, вы определяете его поведение навсегда. Если вы поместите код в представление, это даст вам возможность переопределить поведение позже.

Теперь, чтобы быть полностью гибким, вы должны поместить код в .js, а затем загрузить его из View. Затем вы можете повторно использовать код и в других представлениях.

Еще одно преимущество заключается в том, что если ваш jQuery выполняет частичную обратную передачу, то его размещение на уровне представления позволяет вам настраивать действие / controller / в представлении, а не задавать переменные или передавать модели в PartialView для того же результат.

Вышесказанное, очевидно, основывается на предпосылке, что PartialView может быть повторно использован другим способом. Если он заблокирован и жесток, то я бы наверняка поместил код с частичным представлением.

1 голос
/ 21 января 2010

Это на самом деле не имеет значения, если вы поместите свой скрипт-тег в допустимую часть вашей (X) HTML-структуры. Вы должны использовать функцию document.ready в jQuery, чтобы отложить запуск скрипта до полной загрузки документа. Это означает, что вы не зависите от скрипта, следующего за HTML, которым он манипулирует.

При этом зачастую предпочтительнее поместить как можно больше сценариев во внешние файлы сценариев, а не встраивать их в свои представления. (Внешние файлы сценариев должны быть включены внизу тела вашего HTML-документа, поскольку это обеспечивает наилучшую производительность браузера)

1 голос
/ 21 января 2010

Вы можете поместить его либо в частичное представление, либо на страницу, которая его загружает. Однако следует обратить внимание на то, что если у вас есть события jQuery для запуска элементов, которые внутри являются частичным представлением, и вы загружаете скрипт на главной странице, если вы загружаете в частичном представлении откуда-то еще (т.е. GET), тогда эти события не будут привязаны к элементам DOM.

Так что, если вы собираетесь разместить скрипт на главной странице, убедитесь, что вы используете функцию jQuery Live , чтобы связать события.

1 голос
/ 21 января 2010

вы можете иметь свой код jquery в любом месте, либо в частичном, либо на странице, где вы вызываете свой частичный, или во внешнем файле.

это зависит от того, как вы хотите, чтобы ваш jquery-код запускался, если вы вставляете его в частичное, оно будет запускаться везде, где вы его называете

если ваш вопрос заключается в том, стоит ли размещать его внутри нашего вне <%%>, ответ находится за пределами

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