常规ASP.NET 4.0 aspx页面中的代码块(不是MVC)

时间:2011-03-24 19:33:51

标签: c# .net asp.net asp.net-mvc .net-4.0

是否可以在常规ASP.NET(或类似的东西)中执行类似的操作:

<ul>
    <% foreach (var item in Model) { %>       
        <li id="<%: item.Id %>">    
            blah blah     
        </li>       
    <% } %>
</ul>    

我需要做一个网格,但我想控制html表的输出方式。

3 个答案:

答案 0 :(得分:1)

是的,以这种方式编写的代码就好像它是用代码编写的。如果你想拥有两者,那也是有效的。在作为Model的类后面的页面代码中公开一个属性,然后您可以按照显示的方式访问它。

public partial class _Default : System.Web.UI.Page
{
    protected List<WhateverClass> Model { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        // Populate the model here or in another appropriate event
    }
}

答案 1 :(得分:0)

因为MVC只使用ASP.NET渲染引擎(&lt;%服务器标记来自),所以可能。但是,您应该使用转发器控件,如@Eric所述。问题是,在编译页面时可能无法初始化模型,并且您可能会获得空引用异常。

答案 2 :(得分:0)

是的,你可以这样做,但是在网络表单中,你应该做“web form way”(或者为什么要使用web表单)。

在您的示例中,您可以使用转发器完成相同的操作。

请注意这种风格的建议;两种方法都是100%正确。