2

我知道这是一个非常基本的问题。我有两张桌子

项目 - ID、名称、类型ID ProjectType - ID、名称

在 MVC 中,我有一个控制器操作来创建一个新项目。创建项目时,我在将项目传递给视图之前分配项目的类型,如下所示

//
        // GET: /Project/Create

        public ActionResult Create(string id= null)
        {

            ProjectType selprojtype = null;
            if (id != null)
            {
                selprojtype = db.ProjectTypes.Include("Projects").Single(p => p.Name == id);
          }

            Project project = new Project();
            project.ProjectType = selprojtype;
            //project.TypeID = selprojtype.ID;  -
            var model = new ProjectViewModel(project);
            PopulateDropDownLists(model);
            return View(model);
        } 

我的问题是执行以下仅关联 ProjectType 对象。

Project project = new Project();
 project.ProjectType = selprojtype;

项目上的 TypeID 仍然为空。除非我这样做

 project.TypeID = selprojtype.ID;

有一个更好的方法吗?

4

2 回答 2

1

我不会将 存储TypeIDProject类上,因为该值已经在ProjectType类上。如果你需要访问这个值,你可以这样做:

project.ProjectType.ID

如果需要直接从Project类中访问 ID,可以创建传递属性。例如

public class Project
{
    public ProjectType ProjectType { get; set; }
    public int TypeID
    {
        get { return ProjectType.ID; }
    }
}
于 2012-06-29T15:17:58.587 回答
0

没有 : )

让 ProjectViewModel() 的构造函数从传入的 Project 实例中读取它,并通过从 project.ProjectType 读取它来设置 id

于 2012-06-29T20:16:51.917 回答