Как использовать runat = "server" в теге script в asp.Net

Мне не обязательно запускать его на сервере, однако я бы хотел использовать синтаксис ~/js/somefile.js.

Раньше я просто установил все с помощью Абсолютных путей и установил, что мой проект находится на корневом уровне. Я просто объявляю все мои таблицы стилей, фоновые изображения и файлы javascript как-то вроде /css/somefile.css

Однако для этого проекта он не запускается с правами root.

Я не могу поместить runat="server" в тег script.

Я могу поместить его в тег ссылки.

Это должна быть общая проблема с несколькими простыми ответами.

Ответы

Ответ 1

То, что я всегда делал, это использовать обычный тег script и поместить теги src в <% %>, как показано на рисунке здесь:

<script language="javascript" src='<%=ResolveUrl("~/App_Themes/MainTheme/jquery.js")%>' type='text/javascript'></script>

Ответ 2

Вы можете использовать ScriptManager для этого:

<asp:ScriptManager ID="ScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Path="~/js/somefile.js" />
        </Scripts>
</asp:ScriptManager>

Ответ 3

Вы можете использовать функции внутри строки пути, например,

<script type="text/javascript"
        src="<%=Url.Content("~/Scripts/jquery-1.4.2.min.js") %>"></script>

Однако, что синтаксис ASP.NET MVC для локальных путей - я не могу вспомнить версию форм с верхней части головы.

Ответ 4

Вы можете полностью получить то, что хотите, обернув script тегом asp: ContentPlaceHolder и вы можете получить к нему доступ из кода позади, например set будет выполняться или нет, установив для свойства visible значение true или false. Вот пример:

    <asp:ContentPlaceHolder runat="server" ID="PrintPreviewBlock" Visible="false">
    <script id="PrintPageCall" type="text/javascript" >
        $(function() {
            window.print();
        });
    </script>
</asp:ContentPlaceHolder>

и из кода позади:

PrintPreviewBlock.Visible = true;

Ответ 5

Взято из dailycoding.com:

<script language="javascript" src="<%=ResolveUrl("~/[PATH]")%>" type="text/javascript"></script>