我意识到这可能是我应该知道的一个基本问题,但我自己在C#和asp.net自学,所以我现在有点迷失了。
我现在有2页。一个是.aspx(包含aspx.cs文件),它是空白的,并且从cs文件中的Page_Load函数为它生成html。 HTML非常简单,它只是一个图像和一些文本。
第二个文件是一个shtml文件,其中包含许多内容,包括服务器端,可编辑和不可编辑的区域。我想把我的webapp放到这个文件中。我的asp.net应用程序使用Response.Write来写出html。这个页面的流程并不顺利,因为所有这一切都是在页面顶部写下来的,因为它首先运行并在顶部生成它。
如何在页面内部生成HTML代码的位置,就像在特定的DIV中一样,这样就不会弄乱页面。从哪里开始学习如何做到这一点。
我应该注意,我不需要用户进行任何互动。所有这些都应立即产生。
答案 0 :(得分:2)
我认为您需要阅读一些基本的ASP.Net文档和教程。 Response.Write不是正确的方法 - 您需要了解ASP.Net页面生命周期的工作原理以及如何使用WebControl来呈现html。
ASP.Net试图抽象出必须手动创建你的html。
答案 1 :(得分:1)
您可以在div
:
Literal
control
<div>
<asp:Literal ID="litMarkup" runat=server />
</div>
然后在您的代码隐藏中:
litMarkup.Text = "<strong>Your markup</strong>";
答案 2 :(得分:1)
所以,如果我正确理解了这些问题。 您已经有一个现有的页面/应用程序(shtml文件),您希望通过在现有页面中包含ASP.NET页面的输出来扩展一些新的ASP.NET组件?
这不是ASP.NET支持的开箱即用的东西,你“不会”能够使用SSI执行aspx页面。但是你可以做相反的事情,ASP.NET页面确实支持SSI。因此,如果你没有在shtml文件中使用任何其他脚本,这可能是一个解决方案。
否则,唯一常见的解决方案是使用AJAX框架并让它从现有页面中调用ASP.NET或使用iframe解决方案。在这两种情况下,客户端都可以负责调用ASP.NET页面并合并结果。
然后你有一个控制ASP.NET页面输出的问题吗?
The Polymorphic Podcast在Controlling HTML in ASP.NET WebForms 上有一篇很好的文章。
答案 3 :(得分:0)
我不知道这对你有多好,但是你可以尝试使用iframe来存放ASP.NET页面吗?这应该保持在指定的区域,而不是覆盖您的shtml文件。可能需要考虑一下。
答案 4 :(得分:0)
如果你需要从C#代码生成HTML输出,并且你会在多个地方使用它,我想你可能会想到像所谓的ASP.NET自定义控件(不要混淆)使用“用户控件” - 尽管您可能也可以将这些解决方案与这些解决方案放在一起,使用另一个人建议的Literal控件。 MSDN文档将是一个很好的起点。但是,一般来说,写出HTML-yourself-from-code模型(就像你用CGI应用程序那样)并不是通常的ASP.NET开发模型,因为它在很大程度上违背了使用ASP的要点.NET完全没有。如果您正在编写自己的Web控件,那么您最想做的就是这样,尽管这可能正是您正在做的事情(很难从描述中看出来)。