JK.
JK.

Reputation: 21808

ASP.NET MVC Html.Display() using ViewData?

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.

Upvotes: 3

Views: 18663

Answers (1)

John Farrell
John Farrell

Reputation: 24754

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

You want:

Html.Display("something");

Upvotes: 11

Related Questions