Как я могу использовать runat="server" на тег скрипта в asp.Net
Мне не обязательно запускать его на сервере, однако я бы хотел использовать ~/js/somefile.js
синтаксис.
Ранее я только что установил все с абсолютными путями и установил свой проект на корневом уровне. Итак, я бы просто объявил все мои таблицы стилей, фоновые изображения и файлы JavaScript /css/somefile.css
Однако для этого проекта он не запускается с правами root.
Я не могу поставить runat="server"
по тегу скрипта.
Я могу поставить его на тег ссылки, хотя.
Это должно быть распространенной проблемой с несколькими простыми ответами.
5 ответов
То, что я всегда делал, это использовать нормальный script
пометить и поставить src
в <% %>
теги, как показано здесь:
<script language="javascript" src='<%=ResolveUrl("~/App_Themes/MainTheme/jquery.js")%>' type='text/javascript'></script>
Вы можете использовать ScriptManager для этого:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/js/somefile.js" />
</Scripts>
</asp:ScriptManager>
Вы можете получить полностью то, что вы хотите, обернув тег сценария 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;
Вы можете использовать функции внутри строки пути, например,
<script type="text/javascript"
src="<%=Url.Content("~/Scripts/jquery-1.4.2.min.js") %>"></script>
Тем не менее, это синтаксис ASP.NET MVC для локальных путей - я не могу вспомнить версию формы сверху моей головы.
Взято с dailycoding.com:
<script language="javascript" src="<%=ResolveUrl("~/[PATH]")%>" type="text/javascript"></script>