/ / mvc 3 Html.EditorДодавати атрибут html не працює - c #, html, asp.net-mvc-3, бритвою, редактором

mvc 3 Html.EditorFor додавати html атрибут не працювати - c #, html, asp.net-mvc-3, бритва, редактор

Я намагаюся додати атрибут html для EditorFor

 @Html.EditorFor(model => model.UserName, new { style = "width: 100px" })

Але будь-яким способом я отримую

<input id="UserName" class="text-box single-line" type="text" value="" name="UserName">

Відповіді:

16 за відповідь № 1

EditorFor збирається перезаписати ці атрибути. Подивитися Атрибути Html для EditorFor () в ASP.NET MVC для обхідних шляхів.

Якщо все, що потрібно змінити, є відображення ширини, і ви не покладаєтеся на будь-який Шаблон редактора, то найпростішим виправленням є використання TextBoxFor

 @Html.TextBoxFor(model => model.UserName, new { style = "width: 100px" })

7 для відповіді № 2

У мене була та ж проблема, і це вирішило її ...

<style type="text/css">
#UserName {
width: 100px;
}
</style>

@Html.EditorFor(model => model.UserName)

2 для відповіді № 3

@Html.EditorFor() Динамічно визначає тип керування, що використовується на основі елемента моделі.

Ці налаштування працюють з @Html.LabelFor() від @Html.TextBoxFor(). Наступний код був тести і працює належним чином.

Бритва:

@Html.LabelFor(model => model.UserName, null, new { style = "display: inline;" })
@Html.TextBoxFor(model => model.UserName, null, new { style = "display: inline;" })

Згенерований HTML

<label style="display: inline;" for="UserName">
<input name="LastActivityDate" id="UserName" style="display: inline;" type="text" value=""/>

Зверніть увагу, що другий аргумент - це null, стиль - третій атрибут. якщо використовується @Html.EditorFor()є обов'язковим, тоді ви повинні використовувати клас CSS замість стилю

@Html.EditorFor() на MSDN

Примітка: Код був протестований з MVC4 і, сподіваюся, він дійсний і для MVC3


1 для відповіді № 4

Замість того, щоб використовувати
@ Html.EditorFor (модель => model.UserId)
Використовуйте
@ Html.TextBoxFor (модель => model.UserId, нова {@Value = "Prabhat"})


0 для відповіді № 5

Для чого це коштує я мав цю ж проблему. Я вирішив це, використовуючи дещо іншу версію рішення Narenda V.

Я створив такий клас: (примітка - мін-ширина замість ширини)

.userName { min-width:40em; }

тоді на мій погляд:

@Html.EditorFor(model => model.UserName, new { @class = "userName" })

Коли я не використовував міні-ширину, а ширину, він не працював. Боб


0 для відповіді № 6

Якщо вам потрібно використовувати EditorFor, а не TextBoxForі мати кілька редакторів на сторінці, але тільки потрібно змінити ширину конкретних ... Найпростіше, що додати стиль CSS в ID класу як такий:

<style type="text/css">
input#UserName { width: 100px; }
</style>

-2 для відповіді № 7

Ви можете створити клас стилів у форматі .css

.userName
{
width: 150px;
}

Стиль може бути доповнений атрибутом html class.

@Html.EditorFor(model => model.UserName, new { @class = "userName" })