【发布时间】:2016-01-07 16:54:50
【问题描述】:
将数据从控制器传递到视图时出现此错误:
传入字典的模型项的类型为“System.Collections.Generic.List`1[TipoDeCanal]”,但该字典需要类型为 TipoDeCanal 的模型项。
public class TipoDeCanalesController : GenericController
{
private UnitOfWork unitOfWork = new UnitOfWork();
// GET: TipoDeCanales
public ActionResult Index([DataSourceRequest] DataSourceRequest request)
{
//return Json(unitOfWork.TipoDeCanalRepository.Get(),JsonRequestBehavior.AllowGet);
return View(unitOfWork.TipoDeCanalRepository.Get());
}
@model ..Models.TipoDeCanal
@using ..Models
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@(Html.Kendo().Grid<TipoDeCanal>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.ID);
columns.Bound(p => p.Nombre).Title("Nombre");
columns.Bound(p => p.Descripcion).Title("Descripcion");
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.PopUp))
.Pageable()
.Sortable()
.Scrollable(scr => scr.Height(430))
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Events(events => events.Error("error_handler"))
.Model(model => model.Id(p => p.ID))
.Create(update => update.Action("EditingPopup_Create", "Grid"))
.Read(read => read.Action("Index", "Grid"))
.Update(update => update.Action("EditingPopup_Update", "Grid"))
.Destroy(update => update.Action("EditingPopup_Destroy", "Grid"))
)
)
<script type="text/javascript">
function error_handler(e) {
if (e.errors) {
var message = "Errors:\n";
$.each(e.errors, function (key, value) {
if ('errors' in value) {
$.each(value.errors, function () {
message += this + "\n";
});
}
});
alert(message);
}
}
</script>
【问题讨论】:
-
好吧,大概
unitOfWork.TipoDeCanalRepository.Get()返回一个List<TipoDeCanal>... 而您的视图只需要一个项目。你期望它做什么?
标签: c# asp.net-mvc asp.net-mvc-3 generics