Asp.net如何在aspx页面中编写c#代码?
Asp.net how to write c# code inside aspx page?
这是我的代码
<ul>
<% foreach (string str in more())
{%>
<li><% $str %> </li>
<% } %>
</ul>
当我 运行 代码出现错误时 <% $ str %> 不允许如何将 str 放在列表标签中?
提前致谢
您可以制作 属性 public 并使用隐藏代码将其放入页面加载事件中。
您可以像这样引用 属性 <%= str %>
你实际上不能写成 PHP 风格。
ASP WebForms 有另一种结构,其中代码隐藏(逻辑)和视图(aspx)是两个独立的文件。
数据与视图的绑定实际上是通过将您的数据集绑定到服务器控件来实现的。
一个例子
将新的服务器控件添加到您的 aspx 页面:
<asp:label runat="server" ID="lblMyLabel"/>
并在 aspx.cs 文件更改(或添加,如果有 none)Page_Load 事件:
protected void Page_Load(object sender, EventArgs e) {
lblMyLabel.Text="Hello World";
}
如您所见,您可以直接从代码访问控件。整个事情都是基于事件的,所以你可以在不同的执行时间访问你的控件。阅读本文以了解更多信息:http://msdn.microsoft.com/en-us/library/ms178472%28v=vs.100%29.aspx
您可以为控件注册您自己的事件处理程序(和事件)以响应用户输入或执行您的工作流。
编辑:
是的,您可以使用“<%= %>”、Eval() 和 <%# %> 从视图访问 public 变量,但这不是一个好的编码风格。
希望能帮到你
如果您需要为客户提供一些调试其 webserver/application 配置的方法,那么创建嵌入了代码的单页 aspx 文件会非常有用。
所需要的只是用括号括起您的代码...
<script runat="server">
protected void Page_PreInit(object sender, EventArgs e) {
}
</script>
如果他们的网络服务器甚至不加载您的调试脚本,那么问题肯定在他们这边。
我使用的入门模板如下...我的版本添加了日志记录和更多细节。
<%@ Page Language="C#" %>
<!DOCTYPE html>
<%@Import Namespace="System.IO"%>
<script runat="server">
public static string getProcessName()
{
return "Debug Script";
}
protected void Page_PreInit(object sender, EventArgs e) {
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Debug Script</title>
</head>
<body>
<h1>Debug Script</h1>
<table>
<thead><tr><th>Item/Test</th><th>Result</th></tr></thead>
<tbody>
<tr><th>Process</th><td><%=getProcessName() %></td></tr>
<tr><th>App Pool</td><td><%=System.Environment.GetEnvironmentVariable(
"APP_POOL_ID", EnvironmentVariableTarget.Process) %></td></tr>
<tr><th>Is 64 Bit</th><td><%=Environment.Is64BitProcess %></td></tr>
</tbody>
</table>
</body>
</html>
这是我的代码
<ul>
<% foreach (string str in more())
{%>
<li><% $str %> </li>
<% } %>
</ul>
当我 运行 代码出现错误时 <% $ str %> 不允许如何将 str 放在列表标签中? 提前致谢
您可以制作 属性 public 并使用隐藏代码将其放入页面加载事件中。
您可以像这样引用 属性 <%= str %>
你实际上不能写成 PHP 风格。 ASP WebForms 有另一种结构,其中代码隐藏(逻辑)和视图(aspx)是两个独立的文件。 数据与视图的绑定实际上是通过将您的数据集绑定到服务器控件来实现的。
一个例子 将新的服务器控件添加到您的 aspx 页面:
<asp:label runat="server" ID="lblMyLabel"/>
并在 aspx.cs 文件更改(或添加,如果有 none)Page_Load 事件:
protected void Page_Load(object sender, EventArgs e) {
lblMyLabel.Text="Hello World";
}
如您所见,您可以直接从代码访问控件。整个事情都是基于事件的,所以你可以在不同的执行时间访问你的控件。阅读本文以了解更多信息:http://msdn.microsoft.com/en-us/library/ms178472%28v=vs.100%29.aspx 您可以为控件注册您自己的事件处理程序(和事件)以响应用户输入或执行您的工作流。
编辑: 是的,您可以使用“<%= %>”、Eval() 和 <%# %> 从视图访问 public 变量,但这不是一个好的编码风格。
希望能帮到你
如果您需要为客户提供一些调试其 webserver/application 配置的方法,那么创建嵌入了代码的单页 aspx 文件会非常有用。
所需要的只是用括号括起您的代码...
<script runat="server">
protected void Page_PreInit(object sender, EventArgs e) {
}
</script>
如果他们的网络服务器甚至不加载您的调试脚本,那么问题肯定在他们这边。
我使用的入门模板如下...我的版本添加了日志记录和更多细节。
<%@ Page Language="C#" %>
<!DOCTYPE html>
<%@Import Namespace="System.IO"%>
<script runat="server">
public static string getProcessName()
{
return "Debug Script";
}
protected void Page_PreInit(object sender, EventArgs e) {
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Debug Script</title>
</head>
<body>
<h1>Debug Script</h1>
<table>
<thead><tr><th>Item/Test</th><th>Result</th></tr></thead>
<tbody>
<tr><th>Process</th><td><%=getProcessName() %></td></tr>
<tr><th>App Pool</td><td><%=System.Environment.GetEnvironmentVariable(
"APP_POOL_ID", EnvironmentVariableTarget.Process) %></td></tr>
<tr><th>Is 64 Bit</th><td><%=Environment.Is64BitProcess %></td></tr>
</tbody>
</table>
</body>
</html>