我写了一个页面(只从的 System.Web.UI.Page 的导出,我想更多的网站使用I类动态添加到器WebControls收集Page.Controls这样的:

Panel p = new Panel();
p.Style.Add("float", "left");
p.Controls.Add(locLT);
Page.Controls.Add(p);

此代码只呈现

<div style="float:left;">
</div>

如何添加HTML,头部和主体部,而无需手动写?这可能吗?

有帮助吗?

解决方案

我建议MasterPages,但你可以这样做:

public class CustomBase : System.Web.UI.Page  
{    
    protected override void Render( System.Web.UI.HtmlTextWriter textWriter ) 
    {
        using (System.IO.StringWriter stringWriter = new System.IO.StringWriter())
        {
             using (HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter))
             {    
                 LiteralControl header =new LiteralControl();
                 header.Text = RenderHeader(); // implement HTML HEAD BODY...etc

                 LiteralControl footer = new LiteralControl();
                 footer.Text = RenderFooter(); // implement CLOSE BODY HTML...etc

                 this.Controls.AddAt(0, header); //top
                 this.Controls.Add(footer); //bottom

                 base.Render(htmlWriter); 
             }
        }

        textWriter.Write(stringWriter.ToString());
    }       

}

其他提示

我不相信有什么办法可以自动生成标签,但你可以创建自己的渲染方法输出所需的基本HTML框架。

使用MasterPages一种常见的方式来添加页眉和页脚的一个页面之前是沿用如 HTTP一个BasePage的: //gist.github.com/214437 和从负载的BasePage页眉和页脚控制。我认为一个母版是你比上面的BasePage更好的选择。一用一母版的缺点是你必须添加ASP:在每一页的内容,但它仍然比老办法

如果您的“页”是完全动态的,没有ASPX前端(我不知道这是可能的?!)...然后你真正想要的可能是一个自定义的HttpHandler,而不是从页面继承。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top