'传递到字典中的模型项是'System.Int32'类型,但是这个字典需要一个'System.String'类型的模型项。

时间:2018-01-27 05:29:05

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

我在这里读过类似的关于错误的问题,但我没有找到解决方案,当我为String类定义一个显示模板时发生错误,从Controller我返回一个包含类“Persona”的Object一个int属性。

控制器:

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.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")

String类的显示模板 String.cshtml

@model String

<b>@Model</b>

最后这是“Persona”类的显示模板 的 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>

感谢您的合作

0 个答案:

没有答案