смешивая HTML и C # - PullRequest
0 голосов
/ 11 июня 2009

У меня есть html, который будет на каждой странице, поэтому я вставил его в файл .cs. Этот кусок HTML имеет много цитат, поэтому я предпочел бы не избегать каждого из (\ "). Это не сложно, так как я могу использовать поиск / замену, но я хотел знать. Есть ли хороший способ смешать HTML и CS, чтобы я мог легко сгенерировать страницу?

Ответы [ 8 ]

8 голосов
/ 11 июня 2009

Вместо того, чтобы ваш HTML в коде C # переместить его в файл ресурсов. Вот как (для Visual Studio 2008):

  1. Щелкните правой кнопкой мыши по проекту, выберите «Добавить новый элемент ...»
  2. Выберите файл ресурсов. Оставьте Resource.resx в качестве имени файла. Появится приглашение - выберите «Да», чтобы поместить файл в папку App_GlobalResources.
  3. Дважды щелкните Resource.resx. Добавить новую строчку MyHtml.

В вашем коде используйте Resources.Resource.MyHtml:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write(Resources.Resource.MyHtml);
}

См. Также: Как создать файлы ресурсов для веб-сайтов ASP.NET

4 голосов
/ 11 июня 2009

Для особого случая двойной кавычки не намного лучший способ. Как правило, вы можете использовать дословные строки. Они будут обрабатывать разрывы строк и все escape-символы, кроме ", которые следует заменить на "":

Response.Write(@"<html>
<body>
   <h1 style=""style1"">Hello world</h1>
</body>
</html>");
3 голосов
/ 11 июня 2009

Вы говорите один и тот же HTML на каждой странице. Рассматривали ли вы использование главной страницы с заполнителем содержимого для вашего общего содержимого? Вы можете объединить это с идеей управления пользователями, упомянутой King Avitus.

3 голосов
/ 11 июня 2009

Почему бы вам не вставить этот HTML-код в пользовательский элемент управления, а затем просто добавить этот пользовательский элемент управления на все страницы, которые используют этот HTML-код?

2 голосов
/ 11 июня 2009

Вы можете использовать устаревшие директивы include в asp.net

Затем вы можете поместить свой блок HTML в отдельный файл .html.

<!-- #include PathType = FileName -->
1 голос
/ 11 июня 2009

Вы можете сделать это с одинарными кавычками:

string MyHTML = @"<html>
    <body>
        <div class='foo'>...</div>
    </body>
</html>";

или двойные двойные кавычки:

string MyHTML = @"<html>
    <body>
        <div class=""foo"">...</div>
    </body>
</html>";
0 голосов
/ 11 июня 2009

Вы можете использовать @, чтобы трактовать это буквально, или вы можете взглянуть на класс HtmlTextWriter для более программного подхода.

0 голосов
/ 11 июня 2009

Если вы используете литералы @string, вы можете избежать двойных кавычек с 2 двойными кавычками. Чуть более читабельно (но не сильно) ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...