.NET 核心 MVC 视图模型

.NET Core MVC ViewModel

我有一个 "Link" 模型。

public class Link
{
    public int ID { get; set; }
    public string Name { get; set; }        
    public string Project { get; set; }
}

我想将项目存储在另一个数据库中 table 并 link 以某种方式将其存储到此模型中,并在下拉列表中提供选项。 我想我需要使用 ViewModel 但我不确定我需要做什么。

public class Project
{
    public int ID { get; set; }
    public string Name { get; set; }
}

我想我需要创建一个名为 "Project" 的新模型,然后创建一个将两者结合起来的 ViewModel。

然后我需要为 ViewModel 创建一个单独的控制器还是可以在 "Link" 控制器中使用它?

如果我没看错,您想访问 Link class 中的项目列表。而且我相信您正在使用 MVC。如果那是你想做的,你可以用你的 Link class

public class Link
{
    public int ID { get; set; }
    public string Name { get; set; }        
    public int ProjectID { get; set; }
    public virtual Project Project {get: set;}
}

并且您可以将您的项目class定义为这个

public class Project
{
    public int ProjectID { get; set; }
    public string Name { get; set; }
}

所以现在当您为 Link 生成控制器 class 时,您将得到类似这样的东西

ViewBag.ProjectID = new SelectList(db.Projects, "ProjectID", "Name", list.ProjectID);

您的视图将如下所示

 @Html.DropDownList("ProjectID ", null, htmlAttributes: new { @class = "form-control" })

希望这对您有所帮助

试试这个

public class Link
{
    [Key]
    public int LinkId { get; set; }
    public string LinkName { get; set; }    
     public int ProjectId { get; set; }
    public virtual Project projects { get; set; }
}

public class Project
{
    [Key]
    public int ProjectId { get; set; }
    public string ProjectName { get; set; }
    public virtual ICollection<Link> links { get; set; }
}

然后只需为两者做 mvc 脚手架控制器和视图 类