#c# #asp.net #html #stringbuilder #response.write
#c# #asp.net #HTML #stringbuilder #ответ.написать
Вопрос:
Раньше я использовал инструмент, в котором вы вводите HTML-код, подобный этому:
<div id="pnlLoggedIn" style="width:480px;">
<label for="txtUsername">Username</label>:
<input name="txtUsername" type="text" id="txtUsername" class="input_small" tabindex="1">
amp;nbsp;amp;nbsp;amp;nbsp;
<label for="txtPassword">Password</label>:
<input name="txtPassword" type="password" id="txtPassword" class="input_small" tabindex="2">
amp;nbsp;amp;nbsp;
<input type="submit" name="cmdLogin" value="Login" id="cmdLogin" class="red-button" tabindex="3" runat="server">
</div>
И он выдает вам это в качестве выходных данных:
StringBuilder sb = new StringBuilder();
sb.AppendLine(" <div id="pnlLoggedIn" style="width:480px;">");
sb.AppendLine(" <label for="txtUsername">Username</label>:");
sb.AppendLine(" <input name="txtUsername" type="text" id="txtUsername" class="input_small" tabindex="1"> ");
sb.AppendLine(" amp;nbsp;amp;nbsp;amp;nbsp;");
sb.AppendLine(" <label for="txtPassword">Password</label>:");
sb.AppendLine(" <input name="txtPassword" type="password" id="txtPassword" class="input_small" tabindex="2"> ");
sb.AppendLine(" amp;nbsp;amp;nbsp;");
sb.AppendLine(" <input type="submit" name="cmdLogin" value="Login" id="cmdLogin" class="red-button" tabindex="3" runat="server">");
sb.AppendLine(" </div>");
return sb.ToString();
Я не могу вспомнить название инструмента, я помню, что это был онлайн-инструмент.
Если кто-то знает инструмент, который делает это, пожалуйста, напишите его здесь.
—ОБНОВИТЬ—
Вот инструмент, который я создал: C # HTML Builder
Комментарии:
1. Если я не ошибаюсь… это кажется чрезвычайно тривиальным инструментом для написания (возможно, ~ 5-10 минут). Почему бы не создать свой собственный?
2. Наличие HTML в строках C # — очень плохая идея, поскольку это может привести к проблемам с обслуживанием. Возможно, попробуйте встроенный as.net объекты для достижения вашей цели. Помните, что вы можете расширить существующий объект, чтобы добавить аспекты, которых вам не хватает.
public class MyTextBox : TextBox
3. Почему бы просто не сохранить его в файловой системе и не загрузить в свое приложение? Или использовать встроенный ресурс, если у вас ничего не может быть в файловой системе? Любой способ кажется намного проще, чем поддерживать HTML, встроенный в код.
4. @Justin Я создал свой собственный инструмент, вы можете скачать его здесь: C # HTML Builder
5. @Bazzz: 1 за «драму с обслуживанием». Я краду это.
Ответ №1:
Рискуя выдать отрицательный ответ, это кажется мне плохим решением. Приведенный пример кода для меня выглядит как статический ресурс. Как таковой, ему, вероятно, не место в исходном коде. Скорее, он принадлежит чему-то другому: либо как встроенный ресурс, либо как страница, загружаемая по запросу.
Такого рода код, как правило, является кошмаром для поддержки. Кроме того, в зависимости от того, сколько кода такого рода у вас в системе, это может стать серьезным снижением производительности из-за всех выделений строк и возможного давления на сборщик мусора. (StringBuilder не спасет вас от этого. Контролируйте свое приложение с помощью такого инструмента, как.Отслеживайте производительность СЕТИ и просматривайте тип данных, который вы выделяете чаще всего. Вы можете быть удивлены.)
Смысл этого ответа (я не соизволю называть это ответом) заключается в следующем: мыслите нестандартно. Ваше решение может быть неправильным. Есть ли лучший способ решить эту проблему? Если да, рассмотрите это.
Комментарии:
1. Мне нужно записать мои HTML-данные в соответствии с результатами, которые я получаю от моего SQLReader, каков наилучший способ сделать это? Разве это не ответ. Напишите(sb.toString()); если sb является StringBuilder для HTML-кода, который мне нужен?
2. Даже если это так, HTML, который вы пишете, является статическим, неизменным сгустком HTML. Вы могли бы загрузить его во время выполнения из файла и вставить этот файл в ответ. Преимущество этого заключается в том, что это значительно упрощает изменение файла, если HTML неверен, и упрощает код, который вводит его на вашу страницу. И это только один сценарий.
3. Как я могу загрузить его во время выполнения из файла и вставить некоторые файлы C # посередине?
4. Строка. Формат — твой друг. Вставьте заполнители в файл, в который вы хотите вставить переменные c # («{0}» и так далее). Во время выполнения вызовите Response. Написать (строка. Формат (myFileContents, arg1, arg2, arg3 …)).
Ответ №2:
Я создал приложение, которое мне было нужно 🙂
Надеюсь, кто-нибудь еще сможет найти этому применение:
Ответ №3:
http://www.codeproject.com/KB/vb/File2SB.aspx
Не в Сети, но хорошо. Должен ли выполнять эту работу?
Комментарии:
1. Это то, что мне нужно, но для его использования мне нужно скопировать мой HTML-код в блокнот, затем открыть блокнот с программой, затем скопировать код из программы и вставить его в мой код. Я пытаюсь найти что-то, что работает очень быстро и просто 🙂 если бы у меня было достаточно репутации, я бы проголосовал за ваш ответ