Если вы действительно хотите это сделать, вы можете сделать следующее
<%@ Page ContentType="text/javascript" Language="C#" AutoEventWireup="false" %>
<%@ OutputCache Duration="86400" Location="Any" VaryByParam="None" %>
var time = "<%= DateTime.Now.ToString() %>";
alert(time);
А потом ссылаться на него на своей странице
<script src="Scripts/file.aspx" type="text/javascript"></script>
Примечание При использовании упомянутого метода единственный способ передать целевую страницу для контроля идентификаторов клиента - это сохранить идентификатор клиента в виде строки в открытом свойстве, а затем ссылаться на него, используя новый экземпляр эта страница
Если единственное, что заставило вас сделать это, это идентификатор клиента, вы можете использовать следующую функцию ASP.NET 4
<any-tag ID="myCustomId" runat="server" ClientIDMode="Static" />
Вы также можете поместить все свои клиентские идентификаторы в класс C #, затем сериализовать их с помощью JSON и отобразить их в теге script, что может быть разумным способом для ASP.NET до версии 4.
Примечание используя метод сериализации, у вас есть возможность изменить любой идентификатор тега , не беспокоясь об использовании элементов javascript, помните, что это даже невозможно с ASP.NET 4 ClientIDMode
См
Page-Code-File
public partial class About : System.Web.UI.Page
{
...
protected string GetTagIds()
{
return new JavaScriptSerializer()
.Serialize(new
{
myButton = Button1.ClientID,
myCalendar = Calendar1.ClientID
});
}
...
}
Page-ASPX
<script type="text/javascript">
var IDs = <%= GetTagIds() %>;
</script>
Anywhere
<script type="text/javascript">
IDs.myCalendar.doSomthing...
</script>
Существует еще один вариант, когда вы можете передавать все файлы javascript в обработчик ASP.NET, но я не рекомендую этого, так как только один файл javascript делает обработчик asp.net занятым.
Кодовые блоки
<% встроенный код%>
Это определение встроенного кода, в котором вы можете выполнить коды:
<% Response.Write("Hi"); %>
<% while(i < 0) { %>
<%
Response.Write(i.ToString());
i++;
%>
<%}%>
Примечание Вы должны включить ';' в конце каждого оператора при использовании встроенного кода на языке C # вы можете изменить встроенный язык, используя атрибут языка директивы страницы
<% = встроенное выражение%>
Это равносильно вызову Response. Напишите себя, см .:
<%= "Hi" %> equals to <% Response.Write("Hi"); %>
Примечание Вы не должны включать ';' при использовании встроенного выражения
<%: закодированное встроенное выражение%>
Это равняется:
Response.Write(HttpUtility.HtmlEncode("<script type="text/javascript">alert('XSS');</script>"))
И используется в целях безопасности - XSS , любой входной HTML-код для этого выводит HTML-кодированный текст, который безопасен для отображения введенного пользователем содержимого на странице.
Примечание Вы не должны включать ';' при использовании закодированного встроенного выражения
<% $ expressionPrefix: expressionField%>
Это выражение, которое вы можете использовать для привязки значений из ConnectionStrings, Resources и AppSettings
Возможности expressionPrefix
- AppSettings
- ConnectionStrings
- Ресурсы
expressionField - это свойство указанного expressionPrefix, которое вам нужно, см .:
// AppSettings
<asp:Label ... Text="<%$ AppSettings: version %>" />
// ConnectionStrings
<asp:SqlDataSource ... ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" />
// Resources
<asp:Label ... Text="<%$ Resources: Messages, Welcome %>" />
Примечание Вы не должны включать ';' и вы можете использовать выражения только для атрибутов элементов управления ASP.Net
<% # выражение привязки данных%>
Это можно использовать в любом месте внутри элементов управления с поддержкой привязки данных, и обычно используется методами Eval и Bind.
<asp:DropDownList SelectedValue='<%# Bind("CategoryID") %>'
DataSourceID="CategoriesDataSource"
DataTextField="CategoryName"
DataValueField="CategoryID"
runat="Server" />
Какой Eval или Bind?
Используя Bind, вы имеете двустороннюю привязку, установленную для указанного атрибута элемента управления ASP.NET, смотрите упомянутое раскрывающееся меню, оно использует Bind, что означает, что если конечный пользователь выбирает значение и затем отправляет страницу, раскрывающийся список будет не потерять выбранное значение.
Используйте Eval только для отображения данных.
<asp:FormView ...>
<ItemTemplate>
<a href='Eval("Link")'>Eval("LinkText")</a>
</ItemTemplate>
</asp:FormView>
<% @ текстовая директива шаблона%>
<%@ Page ...%>
This one is Page Directive
<%@ OutputCache...%>
This one is OutputCache Directive and so on...