Можно ли поместить JavaScript в частичное представление?

Я работаю над веб-приложением, в котором главная страница состоит из двух частей: постоянный блок, который всегда виден, и информационный блок, состоящий из одного из трех частичных представлений. Каждое из частичных представлений появляется в результате запроса AJAX и загружается только один раз (после этого окна переключения предоставляются jquery). Это работает хорошо, но я столкнулся с одной проблемой.

Html-код частичных представлений содержит функции js, которые используются как в константном блоке, так и в инфоблоке. Когда страница загружена, эти функции могут & # x201C; см. & # X201D; друг с другом, и это работает, но resharper не может найти объявления функций и предупредить меня об этом. Я не могу решить эту проблему, перенеся их во внешний js-файл из-за синтаксиса бритвы, который можно найти в их коде.

Что я могу сделать с этим?

Благодарю.

Update:

Наконец, я решил решить проблему, отделяющую мой код js от представлений. Поэтому новый вопрос заключался в том, как включить синтаксис бритвы в js-файлы или какова приемлемая альтернатива. Популярные решения, которые я обнаружил, используют глобальные переменные, атрибуты данных и те, которые мне нравятся больше & # x2013; Библиотека RazorJS Джона Кациотиса.

http://djsolid.net/blog/razorjs---write-razor-inside-your-javascript-files

Я надеюсь, что он будет работать стабильно и сделает Resharper счастливым.

Ура!

Update:

Через 3 года я вспомнил этот вопрос и решил обновить его в соответствии с моим опытом. На самом деле сейчас я бы не рекомендовал использовать для этого дополнительные библиотеки. Особенно, если вы не единственный участник команды проекта & # x2026; Намного лучше, если вы уверены во всех своих библиотеках, они поддерживаются создателем и сообществом и могут быть легко интегрированы в вашу IDE (например, если использовать специальный синтаксис). Также все ребята из вашей команды должны знать, как это работает. Так что теперь я бы предложил сделать следующие вещи:

Hold all the JS in separate files. Isolate it as much as you can. Provide the external API for it. Call the API functions from your Views. Pass all the Razor generated URLs, text messages, constants as resource parameter.

Например:

JS файл:

$.api.someInitFunction = function(resources){ ... }

Посмотреть:

<script>
    $.api.someInitFunction({
        urls: { myAction: '@Url.Action("MyAction", "MyController")' },
        messages: { error: '@errorMessage' },
        consts: { myConst: @myIntConst }
    });
</script>

Ответы на вопрос(5)

Ваш ответ на вопрос