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