Расположение javascript шаблона редактора ASP.NET MVC - PullRequest
1 голос
/ 28 сентября 2010

У нас есть шаблон редактора, который содержит около 40 строк jquery.Я попытался поместить этот скрипт в блок <asp:Content>, чтобы сохранить весь javascript в одном месте на странице.Тем не менее, я получаю следующее сообщение об ошибке элементы управления содержимым должны быть элементами управления верхнего уровня на странице содержимого .

Есть ли способ заставить это работать, чтобы у нас не было сценария без точеквокруг наших конечных выходных страниц или кто-то может порекомендовать лучший способ хранения JavaScript, используемый в шаблонах ASP.NET MVC?В данный момент я думаю о том, чтобы собрать код в отдельный файл и сослаться на него на главной странице, но это означает, что он попадает на каждую страницу, которая на самом деле не идеальна.*

Ответы [ 2 ]

0 голосов
/ 28 сентября 2010

как говорит Шива, нижняя часть страницы является «идеальной». впрочем, что касается отдельных файлов. это будет практичным, если вы не ссылаетесь на элементы asp.net со страницы, то есть:

<asp:Content ContentPlaceHolderID="jsCode" ID="jsCode1" runat="server">
    <script type="text/javascript">
        $(document).ready(function() {
            getPoundsData();
        });

        function getPoundsData() {
            var id = $("#ID").val();
            var URL = '<%=Url.Action("GetPounds", "FundShareholder")%>';
            var params = { id: id };
            if (id != null)
                SendAjaxCache("#" + $("#ShareholderID option:selected").text() + " RSP#", URL, params, null, ListDataShareholderPounds);
        }

        function ListDataShareholderPounds(data) {
            if (data.length != 0) {
                $('#shareholderPounds').html("");
                $('#shareholderPounds').show();
                $('#shareholderPounds').html(data);
            }
        };

    </script>
</asp:Content>

обратите внимание:

var URL = '<%=Url.Action("GetPounds", "FundShareholder")%>';

часть в JS. то, что «мы» делаем, - это добавляем раздел контента на главную страницу в самом низу для хранения наших js-материалов. однако это работает только внутри объекта ViewPage (aspx). страницы ascx «не знают» ни о каких разделах содержимого главной страницы .

В настоящее время мы работаем над систематизацией процесса, посредством которого мы сохраняем «частичные» js-файлы со ссылками asp.net внутри них, а затем внедряем их в поток страниц через фильтрующий атрибут. мы находимся на ранней стадии с этим, но хорошая особенность этого подхода заключается в том, что частичный js обрабатывается как файл и поэтому кэшируется для будущих посещений этой страницы.

в любом случае, это наш текущий подход, было бы интересно узнать, используют ли peps какие-либо подобные механизмы для внедрения js, который содержит ссылки на объекты asp.net.

веселит ...

[править] - вот несколько слов о подходе, о котором я говорю (это не было нашим первоначальным вдохновением, но весьма похоже, что это веб-формы, а не mvc) - http://www.west -wind.com / WebLog / posts / 252178.aspx или этот, который является mvc: http://poundingcode.blogspot.com/2009/12/injecting-javasript-into-aspnetmvc-with.html. Наконец нашел статью, которая вдохновила наш «поиск» в следующем: ASP.NET MVC маршрутизация и пути к файлам js плюс http://codepaste.net/p2s3po

0 голосов
/ 28 сентября 2010

Было бы проще для последующего обслуживания, если вы храните javascript в отдельном файле и ссылаетесь на него везде, где это необходимо.Кроме того, если вы чувствуете, что размещение всего сценария в одном файле увеличит ненужную загрузку сценариев, где это не требуется, то разбейте сценарии на отдельные файлы в зависимости от функциональности / модулей, в которых это полезно и т. Д., И затем вместо этого сделайте ссылку на них.

Также было сказано, что всегда сохраняйте / ссылайтесь на скрипты внизу страницы, чтобы загрузка страницы была быстрее.

...