I have read similar questions here about the error but I haven't found a solution, The error occurs when I define a Display Template for the String Class, from the Controller I return an Object of the class "Persona" that contains an int attribute.
Controller:
namespace Display_y_DisplayTemplates.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.cadena = "Cadena de caracteres";
char[] nombres = { 'A','n','d'};
ViewBag.persona = new Persona() {
Nombre = new String(nombres),
Edad = 27,
Empleado = true,
Nacimiento = new DateTime(1990, 12, 15)
};
return View();
}
}
public class Persona {
public String Nombre { get; set; }
public int Edad { get; set; }
public bool Empleado { get; set; }
public DateTime? Nacimiento { get; set; }
}
}
Index View: Index.cshtml
@{
ViewBag.Title = "Home Page";
}
@*A Display se le pasa como parametro el nombre del ViewBag*@
<h1 style="color:red">Display con cadena de caracteres</h1>
@Html.Display("cadena")
@*A Display se le pasa como parametro el nombre del ViewBag*@
<h1 style="color:red">Display con objeto persona</h1>
@Html.Display("persona")
The Display Template for String class String.cshtml
@model String
<b>@Model</b>
And finally this is the Display Template for the "Persona" class Persona.cshtml
@model Display_y_DisplayTemplates.Controllers.Persona
<div class="form-group">
@Html.LabelFor(Model => Model.Nombre):
@Html.DisplayFor(Model => Model.Nombre)
</div>
<div class="form-group">
@Html.LabelFor(Model => Model.Edad):
@Html.DisplayFor(Model => Model.Edad)
</div>
<div class="form-group">
@Html.LabelFor(Model => Model.Empleado):
@Html.DisplayFor(Model => Model.Empleado)
</div>
<div class="form-group">
@Html.LabelFor(Model => Model.Nacimiento):
@Html.DisplayFor(Model => Model.Nacimiento)
</div>
I appreciate your collaboration