none
Не работает перенос по нажатию Enter в textarea. RRS feed

  • Вопрос

  • Почему то Не работает перенос по нажатию Enter в textarea.

    <textarea id="forma-text" name="Text" wrap="soft" >@Text</textarea><br>
    @Html.TextArea("Text", Text,  new { @id = "forma-text", wrap="soft" })<br>
    

    Набираю текст в Форме с учётом, что бы некоторые предложения начинались с новой строки.

    А при открытии страницы на сайте, там где нажимался Enter идёт просто пробел.

    Что за такое? 


    • Изменено Континент 2 декабря 2013 г. 19:22 Замена объявления.
    2 декабря 2013 г. 19:06

Ответы

Все ответы

  • Может какое то значение в базе выставить вместо text?
    2 декабря 2013 г. 19:30
  • Добрый день.

    Посмотрите, что у вас идет в базу. И, возможно, при выводе текста имеет смысл заменять символ переноса строки на <br/>. Скорее всего, у вас перенос строки просто проглатывается браузером, как он и должен это делать в HTML.

    3 декабря 2013 г. 6:15
    Отвечающий
  • Открыл просмотр страницы: Просмотр HTML-кода. Перенос есть. А на самой страницы нет.

    Как выйти из данной ситуации?

    Какой надо применить код, что бы вставлялось <br> при нажатии на Enter в Forme?


    3 декабря 2013 г. 7:22
  • Лучше не при сохранении, а при показе. Перед тем как присвоить считанную строку в компонент для отображения вызовите на считанной строке Replace("\n", "<br />").
    3 декабря 2013 г. 8:16
    Отвечающий
  • И как это вызвать? Или прикрутить?

    3 декабря 2013 г. 8:26
  • Я, к сожалению, не знаю как вы выбираете данные из БД, я не знаю как вы присваиваете эти данные в представление. Если вы расскажите мне это (лучше с кодом), то я расскажу куда вставить замену.

    Еще раз, меня интересует выборка данных и присвоение этих данных в компонент который отображает их пользователю.

    3 декабря 2013 г. 8:39
    Отвечающий
  • Обычный Razor.

    @{  var db = Database.Open("Advert");    
        var selectQueryString = "SELECT * FROM Buy ORDER BY Id DESC";
    }
    
    
    @{ foreach (var row in db.Query(selectQueryString))
    {
    <div class="ads">
    <div class="ads-name">@row.Name</div>
    <div class="ads-title">@row.Title</div>
    <div class="ads-text">@row.Text</div>
    <div class="ads-data">@row.Data</div>
    <div class="ads-tel">@row.Tel</div>
    </div>
    }
    }
    Вот и всё.


    3 декабря 2013 г. 9:16
  • В Razor не силен, но должно быть как то так:

    <div class="ads-title">@row.Title</div>
    @{
        string replacedText = row.Text.Replace("\n", "<br />");
    }
    <div class="ads-text">@replacedText</div>
    

    3 декабря 2013 г. 9:21
    Отвечающий
  • На самой странице среди текста показывает и <br />

    При просмотре HTML-кода показывает

    &lt;br /&gt;

    Вот такая ерунда.

    3 декабря 2013 г. 9:35
  • Вот, на stackoverflow нашел вот такой код:

    <span style="white-space: pre-line">@row.Text</span>
    • Помечено в качестве ответа Континент 3 декабря 2013 г. 10:05
    3 декабря 2013 г. 9:38
    Отвечающий
  • Блин. Я эту white-space: pre-line пробовал применить к Forme, при наборе текста.

    Сейчас поставил в CSS при выдаче текста. Всё работает.

    Спасибо...

    3 декабря 2013 г. 9:48
  • Вот, на stackoverflow нашел вот такой код:

    И ведь эту страницу с утра смотрел. Ну, эта ерунда white-space: pre-line не работает.

    И даже не подумал, что надо на выводе текста ставить.


    3 декабря 2013 г. 9:51
  • Бывает. Главное что проблема решилась.

    Если какой то ответ или ответы помогли вам с решением проблемы. Не забудьте их отметить как ответ. Для этого под сообщением есть кнопка "Пометить как ответ".

    3 декабря 2013 г. 9:52
    Отвечающий