Asp.net如何在aspx页面内编写c#代码?

时间:2015-01-13 16:09:21

标签: c# asp.net

这是我的代码

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

当我运行代码时出现错误&lt;%$ str%&gt;不允许如何在列表标签​​内放置str? 提前谢谢

3 个答案:

答案 0 :(得分:2)

您可以将该属性设置为public,并使用后面的代码将其放入页面加载事件中。

您可以像<%= str %>

这样引用该属性

using variables in asp.net

答案 1 :(得分:0)

你实际上不能把它写成PHP风格。 ASP WebForms有另一个结构,其中代码隐藏(逻辑)和视图(aspx)是两个独立的文件。 通过将数据集实际绑定到servercontrol来实现数据与视图的绑定。

一个例子 将新的服务器控件添加到您的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 您可以为控件注册自己的事件处理程序(和事件),以响应用户输入或执行工作流程。

编辑: 是的,您可以使用“&lt;%=%&gt;”,Eval()和&lt;%#%&gt;从视图中访问公共变量,但这不是一个好的编码风格。

我希望我能帮助你。

答案 2 :(得分:0)

如果您需要为客户端提供某种调试其Web服务器/应用程序配置的方法,则创建一个内嵌代码的单页aspx文件可能非常有用。

所需要做的只是用...括起来的代码...

<%@ 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>

如果他们的网络服务器甚至无法加载您的调试脚本,那么问题肯定就在他们这边。

我使用的入门模板如下...我的版本添加了日志记录和更多详细信息。

ViewModel
public class YarnListViewModel
{
    public IPagedList<YarnFullAdmin> YarnList { get; set; }
}

Controller
var yarns = _context.YarnFullAdmins
    .Include(y => y.Brand)
    .Include(y => y.ColorProduct)
    .Where(y => y.Id > 0)
    .Select(y => new {
        y.Id,
        y.BrandId,
        y.Brand,
        y.ProductName
     });

var viewModel = new YarnListViewModel
{
    YarnList = yarns.ToPagedList(pageNumber, pageSize)
};

return View(viewModel);