C# 用名称替换外键

C# 用名称替换外键,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,所以基本上,我正在制作一个网站,获取一些信息并显示出来 目前,我有它显示我想要的一切,除了我使用的是一个ID而不是一个名字。用户的ID,我想用实际名称替换该ID 如果你看这里 @foreach(var m in Model.Commits) { if(m.ProjectName == Model.SelectedProject) { <tr> <th>@m.UserID</th

所以基本上,我正在制作一个网站,获取一些信息并显示出来

目前,我有它显示我想要的一切,除了我使用的是一个ID而不是一个名字。用户的ID,我想用实际名称替换该ID

如果你看这里

     @foreach(var m in Model.Commits)
     {
        if(m.ProjectName == Model.SelectedProject)
        {
        <tr>
           <th>@m.UserID</th>
           <th>@m.Date</th>
           <th>@m.Message</th>
           <th>@m.BranchName</th>
           <th>@m.Host</th>
           <th>@m.RepositoryPath</th>
        </tr>  
        }
     }
@foreach(Model.Commits中的var m)
{
if(m.ProjectName==Model.SelectedProject)
{
@m、 用户ID
@m、 日期
@m、 信息
@m、 布兰奇纳姆
@m、 主人
@m、 安置路径
}
}
我相信这可能是我必须在我的控制器内做的事情,但我是MVC的新手,而这些莫名其妙的控制器让我发疯


任何帮助都会很好,谢谢

如果'name'属性在'Commits'对象中,那么您应该能够毫无问题地显示它

然而,我怀疑这可能不是那么直截了当的。MVC中的M代表模型,在您提供的示例中,提交类是视图的模型。你的控制器应该调用一些东西来填充/补充这个“提交”模型。看看那个

如果您不习惯MVC,那么需要一段时间才能习惯不完全在一起的事情。虽然很快就会有意义。当然,问题是当您回到不是用MVC编写的代码时,会开始发抖


祝你好运

我认为提交是域模型而不是视图模型。您需要创建viewmodel。比如说

public class CommitViewModel
{
  public DateTime Date{get;set;}
  public String Message{get;set;}
  //other properties
  public string UserName {get;set;}
}

在控制器中,按域模型初始化viewmodel并传递到视图。

Ahh!我想我明白你的意思了。我需要换些东西,但我会试一试的。