0

我是 MVC 编程的新手,目前正在开发一个应用程序。我有以下问题,我不知道如何解决(尽管我在这里阅读了一些类似的主题)。我希望在我的视图中为我的外键列显示另一个值(而不是 FK 值,从相关表中获取一个列值)。我不确定如何实现这一点(通过带有 linq 语句的模型,在控制器中创建视图模型,视图?)。我在 ASP.NET 方面的知识真的很短,所以我很欣赏如何制作它的更详细的答案。先感谢您 !检查下面的情况。

我在数据库中有以下表:

CREATE TABLE [dbo].[TBL_MANAGER](
[manager_id] [int] IDENTITY(1,1) NOT NULL,
[first_name] [varchar](50) NULL,
[last_name] [varchar](50) NOT NULL,
[team_id] [int] NOT NULL,

CREATE TABLE [dbo].[TBL_TEAM](
[team_id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50) NOT NULL,

我使用 ADO.NET 实体数据模型来创建类 TBL_MANAGER。在模型类中,我有以下方法(也许它应该返回 IList):

public partial class TBL_MANAGER
{
    public static IQueryable<TBL_MANAGER> GetManagersQuery()
    {
        FBMSEntities db = SingletonDB.getDB();
        var queryManager = from manager in db.TBL_MANAGER
                           orderby manager.manager_id
                           select manager;
        return queryManager;
    }
}

这是来自控制器的代码(使用 NuGet PagedList):

    public ActionResult Index(int? page)
    {
        var managers = TBL_MANAGER.GetManagersQuery();
        var pageNumber = page ?? 1;
        var onePageOfProducts = managers.ToPagedList(pageNumber, @FBMS.Common.Constants.MAX_PER_PAGE);
        ViewBag.OnePageOfProducts = onePageOfProducts;

        return View(managers);
    }

这是视图中我可视化数据的部分:

@foreach (var item in ViewBag.OnePageOfProducts)
{
<tr>
    <td>
        @item.team_id
    </td>
    <td>
        @item.first_name
    </td>
    <td>
        @item.last_name
    </td>
    <td>
        @item.manager_status
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.manager_id }) |
        @Html.ActionLink("Details", "Details", new { id=item.manager_id }) |
        @Html.ActionLink("Delete", "Delete", new { id=item.manager_id })
    </td>
</tr>
}

我想代替 team_id 来显示 TBL_TEAM.name 的值。

4

1 回答 1

0

Just like you're assigning ViewBag.OnePageOfProducts, you can also assign a dictionary of teams to ViewBag.Teams (so that each dictionary item's Key is team_id and Value is name) and then in your view do something like

...

<td>
    @ViewBag.Teams[item.team_id]
</td>

....

which would look up the name of the team by its ID and render it.

于 2012-06-30T21:42:40.857 回答