使用具有域对象属性的ViewModel对象填充集合的简单方法,以传递给索引

时间:2014-11-29 12:47:30

标签: c# asp.net-mvc

我是MVC.NET的新手(一般都是开发),我真的开始看到ViewModels带来的好处。

所以,我正在重构我的一个索引方法,将一组ViewModel对象发送到视图。但是,我不太确定实现这一目标的最佳方法。

基本上,我的域模型是UseCase,我的ViewModel是UserGoalsStepViewModel。我知道在我的UserGoalIndex动作中我需要一个集合来包含我的ViewModel对象,每个对象都有它存在的每个UseCase设置的属性,但是我不知道如何实现它。

非常感谢。

注意:我知道我可能正在使用AutoMapper并且可能还有很多其他技术可以让生活变得更轻松,但是因为我是新手(时间紧迫!)我只是在寻找最简单的方法。

UseCase模型

public enum Level
{
    Summary, UserGoal, SubGoal,
}
public class UseCase
{
    public virtual int ID { get; set; }
    //[Required]
    public virtual int ProjectID { get; set; }
    public virtual Project project { get; set; }
    [Required]
    public virtual int ActorID { get; set; }  
    [DisplayName("Actor")]
    public virtual Actor actor { get; set; }
    public virtual string Title { get; set; }
    public virtual Level? Level { get; set; }
    public virtual string Precondition { get; set; }
    [DisplayName("Minimal Guarantee")]
    public virtual string MinimalGuarantee { get; set; }
    [DisplayName("Success Guarantee")]
    public virtual string SuccessGuarantee { get; set; }
    public virtual ICollection<Step> Steps { get; set; }
    public virtual ICollection<Extension> Extensions { get; set; }
    public virtual ICollection<Query> Queries { get; set; }

}

UserGoalViewModel (UseCase属性的子集)

public class UserGoalsStepViewModel
    {
        public enum GoalLevel
        {
            Summary, UserGoal, SubGoal,
        }

            public int ProjectId { get; set; }
            //ActorId removed as SelectedActorId is what binds to model 
            //public int ActorId { get; set; }
            [DisplayName("Actor Title")]    
            public SelectList ActorList { get; set; }
            [DisplayName("Actor Title")]
            public string ActorTitle { get; set; }
            public int SelectedActorId { get; set; }
            [DisplayName("Goal Title")]
            public string GoalTitle { get; set; }
            public GoalLevel Level { get; set; }

            public UserGoalsStepViewModel ()
            {

            }


    }

0 个答案:

没有答案