1

HtmlTextWriter を使用して HTML を作成しています。ページが実際に機能するかどうかをテストしたいのですが、div がレンダリングされません。

システムを使用する; 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#に当てはまるかどうかはわかりません

4

1 に答える 1

2

ページが実際に機能するかどうかをテストしたいのですが、div がレンダリングされません。

いいえ、そうではありません。あなたがしていることを見てください:

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

だから、あなたはに書いていStringWriterます。その場合、その文字列ライターでは何もしていません。テキストはメモリ内にあり、基本的にはガベージ コレクションを実行しています。

Pageの応答に書き込みたい場合は、結果を に書き込む必要がありますPage.Response。ただし、リクエストに対するレスポンス全体を制御するか(この場合Pageはおそらく適切ではない)、単一のコントロールのみを制御するか (その場合は、コードをカスタム コントロールに配置する必要がある) を決定する必要があります。

于 2012-04-22T12:02:48.573 に答える