J'ai lutté avec cela pendant un certain temps maintenant, je ne suis pas sûr si c'est juste. Mais j'ai un viewmodel avec trois tables et à mon avis j'utilise le modèle de vue. La vue a une grille de kendo qui a besoin des données de l'une des tables dans le modèle de vue, je ne suis pas capable de lier le modèle à la grille. Toutes les pistes sont appréciées.Kendo grille mvc avec un viewmodel
ViewModel.cs:
public class AppAccountMappingViewModel
{
public virtual List<AppAccountsExternal> AppAccountsExternal { get; set; }
public virtual List<AppAccountsInternal> AppAccountsInternal { get; set; }
public virtual AppAccountMapping AppAccountMapping { get; set; }
}
Je besoin d'une liste de AppAccountsInternal pour la lier au réseau.
Controller:
public ActionResult AppAccountsInternal()
{
var result = new AppAccountMappingViewModel();
result.AppAccountsInternal= _unitofwork.AppAccountsInternal.GetInternalClients(clientid);
return View(result);
}
Vue:
@model EntityFrameworkClasses.ViewModel.AppAccountMappingViewModel
@(Html.Kendo().Grid(Model)
.Name("AppAccountInternalGrid")
.Columns(columns =>
{
//columns.Bound(p => p.View).Title("View").ClientTemplate("<a href='" + Url.Action("Index","SaveRec") + "' target='_blank'>View</a>").Width(150);
columns.Bound(p => p.AppAccountsInternal).Title("Account Internal Name Label1").Width(100);
columns.Bound(p => p.Select(x=>x.AccountInternalNameLabel2)).Title("Account Internal Name Label2").Width(130);
columns.Bound(p => p.Select(x=>x.AccountInternalNameLabel3)).Title("Account Internal Name Label3").Width(130);
columns.Bound(p => p.Select(x=>x.AccountInternalNameLabel4)).Title("Account Internal Name Label4").Width(150);
columns.Bound(p => p.Select(x=>x.AccountsInternalID)).Title("Accounts Internal ID").Width(150);
columns.Bound(p => p.Select(x=>x.ClientID)).Title("ClientID").Width(150);
})
.HtmlAttributes(new { style = "height: 550px;" })
.Groupable()
.Reorderable(r => r.Columns(true))
.Sortable()
.ColumnMenu()
.Scrollable(scr => scr.Height(430))
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(50)
.ServerOperation(false)
.PageSize(20)
)
.Pageable(pageable => pageable
.Refresh(true)
.Input(true)
.Numeric(false)
)
.Selectable()
)
Je fais une erreur avec le modèle étant binded. Quelle est la bonne façon de le faire? Toute aide est très appréciée. Merci!