我是 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 的值。