[Показать (Подсказка MVC3 - PullRequest
       2

[Показать (Подсказка MVC3

4 голосов
/ 05 августа 2011

Я пытаюсь настроить свою модель, чтобы я мог использовать @Html.EditorFor(e => e.publicationTitle), чтобы он отображал водяной знак с подсказкой.

В настоящее время я делаю

@Html.LabelFor(e => e.PublicationTitle) @Html.TextBox("PublicationTitle",tempTitle.ToString(), new { style = "width:350px", placeholder = "Put title here" })
       @Html.ValidationMessageFor(e => e.PublicationTitle)

Я обнаружил, что вы можете поставить [Display(Prompt="Enter title here")] в моей модели

, но он не отображается в моем представлении для некоторыхпричина.

На заметку.Я пытался следовать инструкциям из этого поста Заполнители HTML5 с расширением .NET MVC 3 Razor Editor для расширения?

В конце этого поста говорится об изменении ~ / Views / Shared /Файл EditorTemplates / String.cshtml, но этот файл не находится в моем проекте.

Любые советы будут оценены.Заранее спасибо.

СЛЕДУЙТЕ ЗА!

Ах, радости MVC3.Видимо, вышеприведенный пост отвечает на вопрос, как только вы поймете, что происходит.Если вы создадите файл EditorTemplates / String.cshtml в папке ~ / Views / Shared /, то он будет использовать этот шаблон для ваших полей редактирования.

Окончательный ответ, который будет кратким для тех, кто ищет, будет опубликован ниже.

Ответы [ 3 ]

9 голосов
/ 09 августа 2011

В вашем контроллере вам нужно сделать следующее

[Display(Prompt="First Name Goes Here",Name="First Name")]
[StringLength(100,ErrorMessage="First Name may not be longer than 100 characters")]
public string AuthFirstName { get; set; }

Подсказка = "Это то, что будет отображаться" под дисплеем - это водяной знак, который будет создан.

Затем вам нужно будет создать папку "EditorTemplates" в ~ / Views / Shared, весь путь будет ~ / Views / Shared / EditorTemplates /

Затем создайте файл String.cshtml и поместите в него следующий код

@Html.TextBox("",ViewData.TemplateInfo.FormattedModelValue, new { @class="text-box single-line", placeholder = ViewData.ModelMetadata.Watermark })

Более подробную информацию можно найти по ссылке, размещенной tugberk ( SO вопрос и SO ответ ).

1 голос
/ 14 июля 2012

Это не будет работать с IE, к сожалению.По крайней мере, IE9 и ранее.Я потратил пару часов, чтобы выдернуть волосы, чтобы понять, почему это помогло другим и не работает здесь.Судя по всему, IE не будет отображать подсказки.Надеюсь, что IE10 решит проблему.

0 голосов
/ 18 августа 2014

Атрибут placeholder не поддерживается в более ранних версиях IE, поэтому для правильной работы Display[(Promt="...")] я рекомендую использовать (вместе с шаблоном String, как описано в Samack) любой плагин водяных знаков jQuery (я использовал google) затем добавьте это в функцию Document.Ready:

$(document).ready(function(){
    $(':text').watermark({ textAttr: 'placeholder' });
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...