К основному контенту

Представление обычного текста и html кода с помощью разметки Razor MVC C#

Для новичков в MVC хочу дать пару советов как записывать обычный текст и html код в разметке Razor если на странице используются блоки кода. Этот вопрос возник у меня самого, когда я приступил к изучению MVC.

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


@if (Condition)
{
  @:Отображаемый текст <br/>
}  

Если отображаемый текст заключен в html теги, то дополнительных символов ставить не нужно. Пример:

@if (Condition)
{
  <div>Отображаемый текст</div>
}

Если текста много и он перемешан с  html тегами, то весь блок можно заключить в тег разметки Razor <text>

@if (Condition)
{
<text>
  <div>Отображаемый текст</div> Отображаемый текст 
 <div>Отображаемый текст</div> Отображаемый текст 
</text>

}

Если мы хотим отобразить строковую переменную с html кодом, то при обычном выводе теги html кодируются в последовательность вида "&lt;" ("<") и тп. В этом случае на странице пользователя html код отображается как текст. Чтобы избежать этого нужно использовать конструктор HtmlString("Текст с тегами"). Пример:

@{

var html = "<br/><b>текст</b>";

}

<div>@(new HtmlString(html))</div>

Есть еще одна конструкция, которая отображает html не кодируя его в специальные символы. Пример:


 @(Html.Raw(
"<script type="javascript">alert("Hello, world!");</script>"))

Комментарии

Популярные сообщения из этого блога

Пример взаимодействия с Odnoklassniki Rest API на C#.

Итак, как и обещал, продолжаю тему взаимодействия с различными API. В прошлый раз писал про  API ВКонтакте , сегодня напишу про API Одноклассников. Первое, что нам нужно сделать - это зарегистрироваться как разработчик на Одноклассниках. Сделать это можно по следующей ссылке  Форма регистрации разработчика приложений Получив права разработчика, необходимо зарегистрировать сайт как приложение. Подробно как это сделать можно прочитать  здесь После того как сайт будет зарегистрирован придет письмо, содержащее: Application ID: xxxxxx. Публичный ключ приложения: xxxxxxxxxxxxxxxxxxxxxxxxx. Секретный ключ приложения:  xxxxxxxxxxxxxxxxxxxxxxxxx. Ссылка на приложение: http://www.odnoklassniki.ru/games/xxxxx Используя эти данные можно начать работу с API. Для выполнения запросов к API пользователь должен авторизоваться в Одноклассниках. Добавляем на нашем сайте ссылку для авторизации пользователя: http://www.odnoklassniki.ru/oauth/authorize?client_id...

C# и API ВКонтакте. Обращение к адресу API-сервиса путем создания HTTP-запроса (POST)

В статье  C# POST. Отправляем запросы на адрес стороннего сервера  я рассказал про метод, с помощью которого можно работать с различным API, принимающими POST запрос и возвращающими ответ в виде json или xml. Сегодня я хочу написать, как я применял этот метод при работе с API  ВКонтакте. Для примера возьму задачу получения через API списка групп, в которых состоит пользователь. В первую очередь необходимо зарегистристрировать наш сайт как приложение ВКонтакте. Заходим по ссылке  http://vk.com/editapp?act=create&site=1  и подключаем наш сайт. Дальше задача  делится на две подзадачи, а именно: авторизация пользователя и обращение к API для получения списка групп. Для авторизации мы пользователю предлагаем перейти по следующей ссылке: http://api.vkontakte.ru/oauth/authorize? response_type=code&redirect_uri={0} &client_id={1} &scope={2} &display=page , redirect_uri - адрес страницы нашего сайта, куда будет возвращен пользоват...

C# POST. Отправляем запросы на адрес стороннего сервера.

В ходе работы очень часто сталкиваюсь с различными внешними API, которые принимают на вход данные, отправленные через POST запрос, и возвращают результат в виде xml или json. Ниже привожу свой метод отправляющий данные на адрес стороннего сервера через POST: postedData - данные, отправляемые на сервер, postUrl - адрес, по которому мы обращаемся public static HttpWebResponse PostMethod(string postedData, string postUrl) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl); request.Method = "POST"; request.Credentials = CredentialCache.DefaultCredentials; UTF8Encoding encoding = new UTF8Encoding(); var bytes = encoding.GetBytes(postedData); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = bytes.Length; using (var newStream = request.GetRequestStream()) { newStream.Write(bytes, 0, bytes.Length); newStream.Close(); } return (HttpWebResponse)request.GetResponse(); } Метод возвращает ответ ...