Как я могу использовать runat = "server" на тег скрипта в asp.Net - PullRequest
14 голосов
/ 18 августа 2010

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

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

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

Я не могу поместить runat="server" в тег сценария.

Впрочем, я могу поместить его в тег ссылки.

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

Ответы [ 5 ]

20 голосов
/ 18 августа 2010

Я всегда использовал обычный тег script и помещал теги src в <% %>, как показано здесь :

<script language="javascript" src='<%=ResolveUrl("~/App_Themes/MainTheme/jquery.js")%>' type='text/javascript'></script>
11 голосов
/ 18 августа 2010

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

<asp:ScriptManager ID="ScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Path="~/js/somefile.js" />
        </Scripts>
</asp:ScriptManager>
3 голосов
/ 18 августа 2010

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

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

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

2 голосов
/ 07 ноября 2012

Вы можете получить полностью то, что вы хотите, обернув тег скрипта с asp: ContentPlaceHolder , и вы можете получить к нему доступ из кода, например, установить, будет ли он выполняться или нет, установив 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;
1 голос
/ 18 августа 2010

Взято с dailycoding.com :

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