Asp.net mvc 如何在视图中显示来自另一个模型的相关数据。我错过了什么?

Asp.net mvc 如何在视图中显示来自另一个模型的相关数据。我错过了什么?,asp.net-mvc,Asp.net Mvc,我正在为房地产制作画廊。我将它的数据保存在名为“Imot”的表中,并在名为“Region”的表中保存区域等附加信息。我尝试在视图中显示“Imot”和每个div中的所有项,以添加一些附加信息。示例:im我的表“Imot”我有Imot.ID=1和Imot.RegionID=2。在视图中,我必须看到此不动产的区域是Sofia,它保存在字段regionName中的表region中,RegionID=2。 很多文章都是针对这个主题写的,但没有一篇适合我。 这是我的密码: 型号: public class

我正在为房地产制作画廊。我将它的数据保存在名为“Imot”的表中,并在名为“Region”的表中保存区域等附加信息。我尝试在视图中显示“Imot”和每个div中的所有项,以添加一些附加信息。示例:im我的表“Imot”我有Imot.ID=1和Imot.RegionID=2。在视图中,我必须看到此不动产的区域是Sofia,它保存在字段regionName中的表region中,RegionID=2。 很多文章都是针对这个主题写的,但没有一篇适合我。 这是我的密码:

型号:

public class Imot
{
public int ID { get; set; }
public string ShortName { get; set; }
public string LongName { get; set; }
public int VDID { get; set; }
public int VOID { get; set; }
public int OblastID { get; set; }
public int ObshtinaID { get; set; }
public int VillageID { get; set; }
public int RegionID { get; set; }
public int TypeOfConID { get; set; }
public int StatusImotID { get; set; }
public string MainImage { get; set; }
public int Price { get; set; }
public int Square { get; set; }
public int Floor { get; set; }
public virtual VD VD { get; set; }
public virtual VO VO { get; set; }
public virtual Oblast Oblast { get; set; }
public virtual Obshtina Obshtina { get; set; }
public virtual Village Village { get; set; }
public virtual Region Region { get; set; }
public virtual TypeOfCon TypeOfCon { get; set; }
public virtual StatusImot StatusImot { get; set; }
public virtual ICollection<MyImages> MyImages { get; set; }
}

public class Region
{
public int RegionID { get; set; }
public string RegionName { get; set; }
public virtual ICollection<Imot> Imots { get; set; }
}
视图:

@model IEnumerable
@使用MyProject.Models
@{ViewBag.Title=“待售”;}
@使用(Html.BeginForm(“Index”,“Sales”,FormMethod.Get))
{
@Html.AntiForgeryToken()
@Html.DropDownList(“RegionID”,(SelectList)ViewBag.RegionID,“Region”,
新的{@class=“表单控制”})
}
@foreach(模型中的var项目)
{
@项目.价格
@项目1.RegionID
@item.OblastID,@item.Square,@item.Floor
@item.ShortName
@ActionLink(“更多信息…”,“详细信息”,新的{id=item.id})|
}
以下是我看到的链接: “Region:”旁边必须是Region:“Sofiq”的名称,而只是ID。
谢谢:)

您正在打印
Imot
对象上的
RegionID
属性。如果要打印区域名称,应访问
Region
导航属性并访问其
RegionName
属性

因此,在foreach循环中,替换

@item.RegionID

@item.Region.RegionName
public class MyProjectContext: DbContext
{   
public MyProjectContext() : base("MyProjectContext") {}
public DbSet<VD> VDs { get; set; }
public DbSet<VO> VOs { get; set; }
public DbSet<Oblast> Oblasts { get; set; }
public DbSet<Obshtina> Obshtinas { get; set; }
public DbSet<Village> Villages { get; set; }
public DbSet<Region> Regions { get; set; }
public DbSet<TypeOfCon> TypeOfCons { get; set; }
public DbSet<StatusImot> StatusImots { get; set; }
public DbSet<Imot> Imots { get; set; }
public DbSet<MyImages> MyImageses { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}}
public class MyProjectInitializer :System.Data.Entity.
DropCreateDatabaseIfModelChanges<MyProjectContext>
{protected override void Seed(MyProjectContext context){
var Regions = new List<Region>
{
new Region{RegionName="Sofia"},
};
var Imots = new List<Imot> 
{
new Imot  {ShortName="",LongName="",VDID=1,VOID=5,OblastID=1, 
ObshtinaID=1,VillageID=1,RegionID=4,TypeOfConID=1,
StatusImotID=1,MainImage="",Price=10000,Square=100,Floor=6}
};}}
public class SalesController : Controller
{
private MyProjectContext db = new MyProjectContext();
// GET: ImotsAdmin
public ActionResult Index()
{
ViewBag.RegionID = new SelectList(db.Regions, "RegionID", "RegionName");
var imots = db.Imots.Include(i => i.Oblast).Include(i => i.Obshtina)
.Include(i => i.Region).Include(i => i.StatusImot).Include(i =>i
.TypeOfCon).Include(i => i.VD).Include(i => i.Village).Include(i => i.VO);
 return View(imots.ToList());
 }
 }
@model IEnumerable<MyProject.Models.Imot>
@using MyProject.Models
@{ViewBag.Title = "For Sale";}
@using (Html.BeginForm("Index", "Sales", FormMethod.Get))
{
@Html.AntiForgeryToken()
@Html.DropDownList("RegionID", (SelectList)ViewBag.RegionId, "Region",
new {  @class = "form-control" })
<input type="submit" value="Search" class="btn btn-primary" />
}
<div>
@foreach (var item in Model)
{
<div class="img">
<div class="desc">@item.Price</div>
<a target="_blank" href='@Url.Action("Details", "Sales", new {id=item.ID})'>
<img src="@item.MainImage" alt="Имот" width="110" height="90"></a>
<div class="desc">@item.RegionID</div>
<div class="desc">@item.OblastID , @item.Square , @item.Floor </div>
<div class="desc">@item.ShortName</div>
@Html.ActionLink("More info...", "Details", new { id = item.ID }) |
</div>
}
</div>
<div class="desc">@item.Region.RegionName </div>