3

When I use Html.DisplayFor() using a property of the model, it comes out nicely with both a label for the property name and a textbox or label with the property value:

Html.DisplayFor(model => model.FirstName)     // renders as First Name: Joe Smith

But if I try to use the same for something that is in ViewData, it doesn't seem to have any way to specify the text that will be used in the label in the rendered html:

Html.Display(ViewData["something"].ToString())     // renders as (no label) something

The other Html.Display() parameters don't look helpful:

Html.Display(ViewData["something"].ToString(), "TemplateName", "HtmlElementId", {additionalData})

It looks like the only place I might pass the label is with the additionalData param, but I haven't found any examples or docs on how to do this.

1 Answer 1

10

Html.Display() takes a string expression of what to find in the viewdata and not the view data itself.

You want:

Html.Display("something");
Sign up to request clarification or add additional context in comments.

2 Comments

Yes I typed it wrong in the question. But this doesn't answer the question. I know how to display the value, its the label that I cant automatically create with either Label() or LabelFor() (of course I can always manually type in the label text myself)
Sorry meant to say "with either Display() or DisplayFor()" (not Label)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.