2014-05-04 26 views
27

chcę użyć atrybutu zastępczy w Html.EditorFor więc nie tak jak w pierwszej odpowiedzi: Html5 Placeholders with .NET MVC 3 Razor EditorFor extension?Jak używać atrybutu zastępczego z Html.EditorFor?

Jednak w końcowej części, nie mam folder EditorTemplates więc stworzyłem go i kiedy próbowałem utworzyć widok string.cshtml Nie mogłem, ponieważ nazwa "string" jest zarezerwowana, więc wybrałem zamiast niej stringg.cshtml i nie zadziałało! Czy muszę zmienić nazwę w innym miejscu mojego programu? Zupełnie podoba mi się odpowiedź ...

Dziękujemy!

Odpowiedz

41

Upgrade do MVC 5.1 i można używać HTML atrybuty EditorFor:

@Html.EditorFor(m => m.variable, new { htmlAttributes = new { placeholder = "Your Placeholder Text" } }) 

http://www.asp.net/mvc/overview/releases/mvc51-release-notes

+0

+1 - Dziękuję za ten link. Powiedziałbym, że to najlepsza opcja, jeśli chcesz przejść na wersję 5.1. Działa świetnie. – Termato

+1

Dlaczego musiałeś użyć '@' przed atrybutem 'placeholder'? – Yoda

+0

Nie jestem pewien dlaczego, ale tak to się stało. Wyliczając htmlAttributes, musisz użyć @, aby je rozpoznać. (@class, @id ...) – Medo

3

Podczas korzystania TextBoxFor lub TextAreaFor zamiast EditorFor, należy używać tylko parę wewnętrzny klucz-wartość z @ odpowiedź Medo za , ponieważ metoda bezpośrednio oczekuje obiektu htmlAttributes:

@Html.TextBoxFor(m => m.variable, new { placeholder = "Your Placeholder Text" }) 

(I reali ZE jest styczny do pierwotnego pytania, ale po to tu pomogłaby mi, kiedy wylądował na tę stronę wcześniej, szukając odpowiedzi na jak dodać tekst zastępczy do Html.TextAreaFor!)

6
@Html.EditorFor(model => model.members_ssn, new { htmlAttributes = new { @class = "form-control", placeholder = "Your Example Here" } }) 
+2

Czy możesz wziąć kilka minut i wyjaśnić, co robi twój kod? –

0

Stosowanie niektórych jQuery , np .: $ ("# FirstName"). attr ("symbol zastępczy", "Nie wpisuj nazwy - użyj przycisku Szukaj");