It doesn't work like this, the error is:
Expected ","
@Html.LabelFor(ViewBag.OrganizationDetails => (string)ViewBag.OrganizationDetails.AddressLegal, htmlAttributes: new { @class = "control-label col-md-2" })
The OrganizationDetails is a class and the AddressLegal is a string (need its value)
Try this:
@model ParentModel
@Html.LabelFor(model => model.Name)
@Html.LabelFor(model => model.Child.Name)
in your case should be:
@model ViewBag.OrganizationDetails
@Html.LabelFor(model => model.AddressLegal, new { @class = "control-label col-md-2" })
or
@model ViewBag
@Html.LabelFor(model => model.OrganizationDetails.AddressLegal, new { @class = "control-label col-md-2" })
I haven't tried it.
You have two choices.
The first, when using the ViewBag:
@using Models
@{
ViewBag.Title = "Home Page";
OrganizationDetails details = ViewBag.OrganizationDetails;
}
@Html.LabelFor(m => details.AddressLegal, htmlAttributes: new { @class = "control-label col-md-2" })
The second, use the strongly typed version of the Html.LabelFor() by passing the model to the view:
public ActionResult Index()
{
var model = new OrganizationDetails() { AddressLegal = "Address" /* set another properties ... */};
return View(model);
}
And in the view:
@model Models.OrganizationDetails
@Html.LabelFor(m => m.AddressLegal, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.DisplayFor(m => m.AddressLegal)