HtmlTextWriter不呈现

时间:2012-04-22 12:00:34

标签: c# asp.net htmltextwriter

我正在使用HtmlTextWriter为我创建一些HTML。我想测试我的页面是否真的有效,但它不会渲染div。

使用System; 使用System.Collections.Generic; 使用System.Web; 使用System.Web.UI; 使用System.Web.UI.WebControls; 使用System.IO;

public partial class web_content_notes_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        /* Configuration Start */
        string thumb_directory = "img/thumbs";
        string orig_directory = "img/original";
        int stage_width = 600;
        int stage_height = 480;
        Random random = new Random();

        // array of allowed file type extensions
        string[] allowed_types = { "bmp", "gif", "png", "jpg", "jpeg", "doc", "xls" };

        /* Opening the thumbnail directory and looping through all the thumbs: */
        foreach (string file in Directory.GetFiles(thumb_directory))
        {
            string title = Path.GetFileNameWithoutExtension(file);
            if (allowed_types.Equals(Path.GetExtension(file)) == true)
            {
                int left = random.Next(0, stage_width);
                int top = random.Next(0, 400);
                int rotation = random.Next(-40, -40);

                if ((top > stage_height - 130) && (left > stage_width - 230))
                {
                    top -= 120 + 130;
                    left -= 230;
                }


            }

            //display the files in the directory in a label for testing
            Label1.Text = (file);

            StringWriter stringWriter = new StringWriter();

            // Put HtmlTextWriter in using block because it needs to call Dispose.
            using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))

                // The important part:
                writer.Write("<div>testing123</div>");

        }

    }
}

我想将各种变量添加到div中。

我该怎么做?我记得在经典的asp / vbscript中你必须将代码包装在<% code %>中,不确定是否是ASP.NET / C#中的情况#

1 个答案:

答案 0 :(得分:2)

  

我想测试我的页面是否真的有效,但它不会渲染div。

唔不,它不会。看看你在做什么:

StringWriter stringWriter = new StringWriter();
using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
    writer.Write("<div>testing123</div>");

所以,你写的是StringWriter。然后,您正在使用该字符串编写器 nothing :文本在内存中,并且您基本上会让它被垃圾收集。

如果您想写入Page的回复,则必须将结果写入Page.Response。但是你应该决定是否要控制请求的响应的整个 - 在这种情况下Page可能不是非常合适 - 或者只是一个控件,在这种情况下你应该可能是将您的代码放在自定义控件中。