HtmlTextWriter не отображает

Я использую HtmlTextWriter, чтобы создать для меня HTML. Я хочу проверить, действительно ли моя страница работает, но не отображает div.

используя Систему; using System.Collections.Generic; using System.Web; using System.Web.UI; using 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 #


person SOLDIER-OF-FORTUNE    schedule 22.04.2012    source источник


Ответы (1)


Я хочу проверить, действительно ли моя страница работает, но не отображает div.

Ну нет, не поверит. Посмотри, что ты делаешь:

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

Итак, вы пишете StringWriter. Затем вы ничего не делаете с этим строковым писателем: текст находится в памяти, и вы в основном позволяете ему собирать мусор.

Если вы хотите написать в ответ Page, вам нужно будет записать результат в Page.Response. Но вы должны решить, хотите ли вы контролировать весь ответ на запрос - в этом случае Page, вероятно, не очень подходит - или только один элемент управления, и в этом случае вам, вероятно, следует поместить свой код в настраиваемом элементе управления.

person Jon Skeet    schedule 22.04.2012
comment
@ sp-1986: Ну, у вас есть бесполезный код. Смотрите мою правку. - person Jon Skeet; 22.04.2012
comment
Джон, я вижу, ты автор. Я также вижу, что у вашей книги отличные 5-звездочные обзоры. - person SOLDIER-OF-FORTUNE; 22.04.2012
comment
Я мог бы использовать скрытый элемент управления формой, а затем заставить stringWriter выводить его на странице. - person SOLDIER-OF-FORTUNE; 22.04.2012
comment
@ sp-1986: Зачем вам использовать скрытый элемент управления формой? Я думаю, вам просто нужен настраиваемый элемент управления. Прочтите msdn.microsoft.com/en-us/ library / yhzc935f (v = vs.85) .aspx, например. - person Jon Skeet; 22.04.2012
comment
@JonSkeet с точки зрения производительности, какой лучший способ сгенерировать и сохранить сложный html динамически строковый конструктор или строковый писатель ?. - person irfanmcsd; 22.04.2012