This is my code:
Model:
[Required] [DataType(DataType.Text)] [Display(Name = "Your company's name")] public string CompanyName { get; set; }
View:
@Html.TextBoxFor(m => m.CompanyName, new { @class = "account-input", @placeholder = @Html.DisplayNameFor(m => m.CompanyName), @id = "companyname" })
It will be rendered like this:
Your company's name
html output:
<input class="account-input" data-val="true" data-val-required="The Your company's name field is required." id="companyname" name="CompanyName" placeholder="Your company&#39;s name" type="text" value="">
It should be look like this:
Your company's name
Why is the text does not render correctly and how can I prevent this?
I already tried this:
@Html.TextBoxFor(m => m.CompanyName, new { @class = "account-input", @placeholder = @Html.Raw(@Html.DisplayNameFor(m => m.CompanyName)), @id = "companyname" })
and this
@Html.TextBoxFor(m => m.CompanyName, new { @class = "account-input", @placeholder = @Html.Encode(@Html.DisplayNameFor(m => m.CompanyName)), @id = "companyname" })
I think this post will help you:
HTML encode decode c# MVC4
I think there are other ways to get this behaviour, but this is one option of using the TextBox:
@Html.TextBox("CompanyName", HttpUtility.HtmlEncode("Your company's name"))
There is also HttpUtility.HtmlDecode
, which might help with our save action.
update
if you wrap HttpUtility.HtmlDecode
around your place holder:
@Html.TextBoxFor(m => m.CompanyName, new { @class = "account-input", @placeholder = HttpUtility.HtmlDecode(Html.DisplayNameFor(x => x.CompanyName).ToHtmlString()), @id = "companyname" })
the placeholder returns as: placeholder="Your company's name"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With