Asp.net mvc 从MVC5中的不同模型获取字段

Asp.net mvc 从MVC5中的不同模型获取字段,asp.net-mvc,asp.net-mvc-5,multiple-inheritance,Asp.net Mvc,Asp.net Mvc 5,Multiple Inheritance,我有一个模型链接到第二个表: public class Rock { public int ID { get; set; } [ForeignKey("Con")] public int ConID { get; set; } public virtual Con Con { get; set; } } public class Con { public int ID { get; set; } public virtual ICollect

我有一个模型链接到第二个表:

public class Rock
{
    public int ID { get; set; }

    [ForeignKey("Con")]
    public int ConID { get; set; }
    public virtual Con Con { get; set; }
}

public class Con
{
    public int ID { get; set; }

    public virtual ICollection<Rock> Rock{ get; set; }

    [Required]
    [RegularExpression(@"^[0-9A-Za-z '']+$")]
    [StringLength(200, MinimumLength = 3)]
    public string Name { get; set; }
}
我想从该表中获取con名称并将其发送到视图。在这一点上,它不知道它的名字,因为还没有“摇滚”记录链接它


有什么建议吗?提前谢谢

如果您创建了一个强类型视图,并将Rock作为类型,则需要将“Con Name”属性添加到Rock类型,或者需要创建一个新类型,并将要传递给视图的数据添加到此类型

public class NewType
    {
        public int ConID { get; set; }
        public string ConName { get; set; }
    }
添加要在此类型中传递的数据,并使用此对象返回视图:-

    public ActionResult Create(int? ConID)
    {
            var newType= new NewType();
            newType.ConID = (int)ConID;
            newType.ConName = "XYZ";
            return View(newType);
    }

我给出的两个建议是将Con.name传递给viewbag中的视图,或者按照Rahul的建议创建一个viewmodel,该viewmodel组合了该特定视图所需的不同类的属性。

谢谢您的回复!您可以演示如何将Con Name属性添加到Rock类中吗?这将是我认为最简单的解决方案。谢谢-我用Rock而不是Rating修复了上面的代码。但是这个问题已经解决了,既然@Model.Con.Name是一个新对象,我不是会得到一个空值吗?有没有办法用ConID创建新的Rock,这样Con就会像var Rock=new RockConID,ConID;?是的,您可以将对象指定给该属性。e、 g.rock.Con=newcon{id=1,name=foo};但您似乎希望加载现有对象,而不是创建新对象。
    public ActionResult Create(int? ConID)
    {
            var newType= new NewType();
            newType.ConID = (int)ConID;
            newType.ConName = "XYZ";
            return View(newType);
    }