【问题标题】:Asp.net how to write c# code inside aspx page?Asp.net如何在aspx页面内编写c#代码?
【发布时间】:2015-01-13 16:09:20
【问题描述】:

这是我的代码

 <ul>
   <% foreach (string str in more())
    {%>
     <li><% $str %>  </li>      
    <% } %>
  </ul>

当我运行代码时出现错误 are not allowed 如何将 str 放在列表标签​​内? 提前致谢

【问题讨论】:

  • 使用$不是PHP。
  • C# code samples 是一个很好的起点 ||在这里试试stackoverflow.com/questions/10198277/…
  • 你对,我尝试了不止一种方法,但我没有?
  • @MethodMan 这正是我想要的,非常感谢。
  • 您应该在这里使用Repeater,而不是将代码嵌入到标记中。在后面的代码中将数据绑定到它。

标签: c# asp.net


【解决方案1】:

您可以公开该属性并使用后面的代码将其放入页面加载事件中。

你可以像这样引用属性&lt;%= str %&gt;

using variables in asp.net

【讨论】:

    【解决方案2】:

    你实际上不能用 PHP 风格写它。 ASP WebForms 有另一种结构,其中代码背后(逻辑)和视图(aspx)是两个独立的文件。 数据与视图的绑定是通过将​​数据集实际绑定到服务器控件来实现的。

    一个例子 将新的服务器控件添加到您的 aspx 页面:

    <asp:label runat="server" ID="lblMyLabel"/>
    

    并在 aspx.cs 文件中更改(如果没有,则添加)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() 和 从视图中访问公共变量,但这不是一种好的编码风格。

    希望能帮到你。

    【讨论】:

      【解决方案3】:

      如果您需要为客户提供某种方式来调试他们的网络服务器/应用程序配置,那么创建一个嵌入了代码的单页 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多