Model view controller MVC:将视图中的ID值(外键的)替换为其值

Model view controller MVC:将视图中的ID值(外键的)替换为其值,model-view-controller,data-binding,binding,mapping,Model View Controller,Data Binding,Binding,Mapping,假设我们有这两个表,由外键CAT_ID绑定: 类别[类别ID,类别名称] cat_id=1,cat_名称=经典 cat_id=2,cat_name=Jazz ... 音乐迷[专辑ID、专辑名称、类别ID] 唱片集id=1,唱片集名称=Wagner-Parsifal,唱片集id=1 相册id=2,相册名称=Davis Miles-有点蓝,猫id=2 如何在MVC视图上显示其值(即:CAT_NAME)而不是CAT_ID?像这样:----- 音乐 1 |瓦格纳-帕西法尔|古典 2 | Davis

假设我们有这两个表,由外键CAT_ID绑定:

类别[类别ID,类别名称] cat_id=1,cat_名称=经典 cat_id=2,cat_name=Jazz ...

音乐迷[专辑ID、专辑名称、类别ID] 唱片集id=1,唱片集名称=Wagner-Parsifal,唱片集id=1 相册id=2,相册名称=Davis Miles-有点蓝,猫id=2

如何在MVC视图上显示其值(即:CAT_NAME)而不是CAT_ID?像这样:----- 音乐 1 |瓦格纳-帕西法尔|古典 2 | Davis Miles-一种蓝色爵士乐 -----


谢谢

您希望外键功能被标记为新功能,因此在第一次查看时可能不可用:

从他们的站点查看代码,稍微清理一下

 Html.Telerik().Grid<ClientEditableOrder>()
       .Name("Grid")                      
       .Columns(columns =>
       {
           columns.Bound(o => o.OrderID).Width(100);
           columns.ForeignKey(o => o.EmployeeID, (IEnumerable<employee>)ViewData["employees"],
               "ID", "Name").Width(230);
           columns.Bound(o => o.OrderDate).Width(150);
           columns.Bound(o => o.Freight).Width(220);               
       })
       //..etc..
       .Render();
他们的“AjaxEdit”控制器操作使用参数中显式列出的外键ID执行一些古怪的操作。但是,当我的对象暴露出我在中发现的FK字段时,它按预期工作,不需要任何复杂的操作

任何人只要能提供一个过滤/排序这些列上显示值的示例,就可以获得额外的积分,因为这些功能应用于基础的“id”值而不是显示的字符串

public ActionResult Edit() {
        var r = _userService.GetAllemployees().ToList();
        ViewData["employees"] = r;
        return View();
    }