Как указать столбцы и строки многострочного редактора-Для в ASP.MVC?



в ASP.MVC 3, Как указать столбцы и строки для многострочного EditorFor (текста)? Я использую [UIHint("MultilineText")], но не могу найти никакой документации о том, как добавить атрибуты для текстовой области.



нужный HTML:



 <textarea cols="40" rows="10"></textarea>


соответствующая часть моей модели MVC 3:



[UIHint("MultilineText")]
public string Description { get; set; }


соответствующая часть моей бритвы cshtml:



<div class="editor-field">
@Html.EditorFor(model => model.Description)
</div>


что я получаю в поле зрения Источник:



 <div class="editor-field">
<textarea class="text-box multi-line" id="Description" name="Description"></textarea>
</div>


Как установить строки и столбцы?

611   6  

6 ответов:

Использовать TextAreaFor

@Html.TextAreaFor(model => model.Description, new { @class = "whatever-class", @cols = 80, @rows = 10 })

или использовать стиль для multi-line класса.

Вы можете также написать EditorTemplate для этого.

In ASP.NET MVC 5 Вы можете использовать . Он будет отображать TextArea тег.

public class MyModel
{
    [DataType(DataType.MultilineText)]
    public string MyField { get; set; }
}

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

@Html.EditorFor(model => model.MyField, new { htmlAttributes = new { rows = 10 } })

или просто используйте TextAreaFor с правой перегрузкой:

@Html.TextAreaFor(model => model.MyField, 10, 20, null)

Этот также можно использовать с меньшими усилиями, я считаю (но я в MVC 5)

@Html.Description(model => model.Story, 20, 50, new { })

enter image description here

один из вариантов, кажется, использует CSS для стиля textarea

.multi-line { height:5em; width:5em; }

посмотреть эта запись на SO или это одно.

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

EDIT: подтверждено, это так. Так что да, если вы хотите использовать EditorFor, используя этот стиль CSS делает то, что вы ищете.

<textarea class="text-box multi-line" id="StoreSearchCriteria_Location" name="StoreSearchCriteria.Location">

в mvc 5

              @Html.EditorFor(x => x.Address, 
              new {htmlAttributes = new {@class = "form-control", 
                   @placeholder = "Complete Address", @cols = 10, @rows = 10 } })

In .net VB - вы можете добиться контроля над столбцами и строками со следующим в вашем файле razor:

@Html.EditorFor(Function(model) model.generalNotes, New With {.htmlAttributes = New With {.class = "someClassIfYouWant", .rows = 5,.cols=6}})

Comments

    Ничего не найдено.