MVC @ Html.Display () - PullRequest
       4

MVC @ Html.Display ()

5 голосов
/ 01 ноября 2011

У меня есть что-то вроде:

 <input type="text" name="TerrMng" id="TerrMng"/>  

в HTML.Что эквивалентно приведенному выше при использовании @ Html.Display?

Я пытался использовать: @Html.Display("TerrMng", TerrMng)

, но не удалось.Обратите внимание, что мне нравится использовать @ Html.Display, но я не уверен, как преобразовать значение идентификатора, чтобы оно появилось.

Ответы [ 4 ]

5 голосов
/ 01 ноября 2011

Метод Display не предназначен для создания полей ввода. Вы хотите использовать:

@Html.TextBoxFor(m => m.TerrMng);

или шаблонный помощник метод:

@Html.EditorFor(m => m.TerrMng);

Я предполагаю, что вы хотите использовать связывание моделей. Если нет, если вы действительно хотите использовать помощника для простого создания тега ввода, используйте:

@Html.TextBox("TerrMng");

Это будет отправлено клиенту:

<input id="TerrMng" type="text" value="" name="TerrMng">

Первые 2 метода выше приведут к тому же html, если model.TerrMng был "" или String.Empty Если по какой-то причине вам не нужен атрибут value, вам нужно будет ввести его самостоятельно.

3 голосов
/ 02 ноября 2011

Это должно сработать, если вы просто хотите отобразить данные и не позволить пользователю редактировать информацию.

@Html.DisplayFor(m => m.TerrMng);

Edit:

what-is-the-html-displayfor-syntax-for - это еще один вопрос о стеке потока, который может дать вам дополнительные рекомендации.

Изменить:

TerrMng не существует в PageLoad, поэтому вы не можете использовать Html.Display таким образом. Вам нужно создать его и заполнить его значением, полученным из jQuery. В этом случае, когда вам нужно будет сделать следующее:

HTML

 @Html.Display("TerrMng"); // This creates the label with an id of TerrMng

JQuery

 $("#TerrMng").val(TerrMng); // This puts the value of the javascript variable into the label
3 голосов
/ 01 ноября 2011

Вы можете попробовать что-нибудь на основе этого. Это не точно, но вы могли бы получить представление.

@Html.TextBoxFor(yourmodel => model.yourModelFieldname, null)
0 голосов
/ 19 февраля 2019

@Html.Display() используется вместо @Html.DisplayFor(), когда ваша модель неизвестна во время компиляции или если вы предпочитаете работать со строками, а не со строгими типами.Например, эти 2 являются эквивалентами (учитывая, что ваша модель является некоторым классом):

@Html.DisplayFor(m => m.MyProperty)

и

@Html.Display("MyProperty")

Но дополнительная замечательная особенность метода Display () заключается в том,также можно выполнять поиск в ViewData, а не только в вашем классе Model.Например, вот способ отобразить HTML для свойства на случайном объекте, учитывая, что мы знаем, что у него есть свойство с именем «Blah» (тип объекта на самом деле не имеет значения):

@{ ViewData["itsawonderfullife"] = SomeObject; }
<div>@Html.Display("itsawonderfullife.Blah")</div>

Таким образом, мы говорим HtmlHelper заглянуть в ViewData вместо нашего Model и отобразить свойство Blah данного SomeObject.

...