What is the reason DisplayFor ignores html attribu

2019-06-24 01:59发布

问题:

When trying to use this

@Html.DisplayFor(m => m.someField, new { htmlAttributes = "class = someclass" })

the field, when rendered does not contain class someclass. I supposed its because its just writing out the text and there isn't a span element or anything to set the class on.

I'm really looking to set the id so that I can update it via js later on.

回答1:

class needs to be @class

This comment is valid

DisplayFor(), does not have any HTML attributes, thus u can't do it. Instead there are other ways of rendering the data inside a DIV/SPAN with ur class.. – Nick Oct 16 at 11:15

This comment is also valid

I think it should be @Html.DisplayFor(m => m.someField, new {@class="someClass"}) – Michel Oct 16 at 11:30



回答2:

This solution worked for me (for example, when model is Url): Razor view to DisplayFor DataType.Url that opens in new window

"You could override the default template by adding a file in ..."