动态生成的 ASP.NET 页面没有基本的 html 结构
我编写了一个页面(仅从 System.Web.UI.Page 派生的类,我想在更多网站中使用它。我动态地将 webcontrol 添加到 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、HEADER 和 BODY 部分?这可能吗?
i wrote a page (only class that derives from System.Web.UI.Page, that i want to use in more websites. I dynamically add webcontrols to Page.Controls collection like this:
Panel p = new Panel();
p.Style.Add("float", "left");
p.Controls.Add(locLT);
Page.Controls.Add(p);
this code renders only
<div style="float:left;">
</div>
How can i add HTML, HEADER and BODY section without manually write this? Is it possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我推荐 MasterPages,但你可以这样做:
I recommend MasterPages but you can do this:
我不相信有任何方法可以自动生成标签,但您可以创建自己的 Render 方法来输出所需的基本 HTML 框架。
I don't believe there is any way to automatically generate the tags, but you can create your own Render method that outputs the required basic HTML framework.
在使用 MasterPages 之前,为页面添加页眉和页脚的常见方法是从 BasePage 继承,例如 http://gist .github.com/214437 并从 BasePage 加载页眉和页脚控件。我认为 MasterPage 比上面的 BasePage 更适合您。 MasterPage 的缺点之一是您必须在每个页面添加 asp:content,但它仍然比旧方法更好。
Before using MasterPages a common way to add header and footer for a page was to inherit from a BasePage like http://gist.github.com/214437 and from the BasePage load header and footer controls. I think that a MasterPage is better choice for you than the BasePage above. One of the drawbacks with a MasterPage is that you have to add asp:content at every page but it's still better than the old way.
如果你的“页面”是完全动态的并且没有 aspx 前端(我没有意识到这是可能的?!)...那么你真正想要的可能是一个自定义的 HttpHandler 而不是从 Page 继承。
If your "page" is completely dynamic and has no aspx front-end (I didn't realize this was possible?!)... then what you really want is probably a custom HttpHandler rather than inheriting from Page.