从MVC 5中的不同模型中获取字段

时间:2014-10-21 02:55:21

标签: 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 ICollection<Rock> Rock{ get; set; }

    [Required]
    [RegularExpression(@"^[0-9A-Za-z '']+$")]
    [StringLength(200, MinimumLength = 3)]
    public string Name { get; set; }
}

在我的控制中,我有一个'创建'动作:

// GET: Rock/Create/3337
    [Route("Rock/Create/{ConID?}")]
    public ActionResult Create(int? ConID)
    {
        var rock= new Rock();
        rock.ConID = (int)ConID;
        return View(rock);
    }

我想从该表中获取con名称并将其发送到视图。此时它不知道名字,因为还没有“摇滚”记录链接它。

有什么建议吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

如果您使用Rock作为类型创建了强类型视图,则需要添加“Con Name”和“#39”。属性为Rock Type,否则您需要创建一个新的Type并将数据添加到您要传递给View的此Type。

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);
    }

答案 1 :(得分:0)

我给出的两个建议是将Con.name传递给viewbag中的视图,或创建一个视图模型,如Rahul建议的那样,它结合了特定视图所需的不同类的属性。