Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PlaceHolder + @Html.TextBox issue

The goal

Apply, with success, the placeholder attribute for @Html.Textbox method.

The problem

There is the following syntax on my application;

@Html.TextBox("term", new { placeholder = "What are you searching for?" })

But, when the TextBox is rendered, the value attribute of the input is placeholder = "What are you searching for?". In other words, the placeholder attribute isn't applied as an attribute, but as an input's value.

Knowledge

I already searched about this question on Google and Stack Overflow, but until now, without success.

This link has a solution with the same syntax that I'm using, but when I pass the second parameter to TextBox(), it is rendered as a value and nothing happens with the third parameter (in our case, new { placeholder = "something" }).

like image 471
Guilherme Oderdenge Avatar asked Aug 14 '13 13:08

Guilherme Oderdenge


1 Answers

You're calling the string name, object value overload of that method, so the second parameter is being taken as the value, not as htmlAttributes. You should use a different overload of the method, probably string name, object value, object htmlAttributes by specifying an empty value:

@Html.TextBox("term", "", new { placeholder = "What are you searching for?" })
like image 95
Tim S. Avatar answered Sep 28 '22 03:09

Tim S.