我在这里尝试了muplitple方法,但我仍然不明白如何从MVC中的join-table访问数据。
以下是我的模特:
public class Company
{
public int ID { get; set; }
public string CompanyName { get; set; }
public virtual ICollection<Firm> Firm { get; set; }
}
public class Firm
{
public int ID { get; set; }
public string FirmName { get; set; }
public virtual ICollection<Company> Company { get; set; }
}
这会创建连接表&#34; FirmCompany&#34;在我的数据库中使用&#34; Firm_ID&#34;和&#34; Company_ID&#34;。
我在此表中添加了一条记录数据&#34; 645&#34;和&#34; 330&#34;分别
在我的控制器中,我有以下代码来获取数据:
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Company company = db.Company.FirstOrDefault(u => u.ID == id);
var companies = company.Firm;
if (company == null)
{
return HttpNotFound();
}
return View(companies);
}
当我输入正确公司的详细信息视图时,我收到以下错误:
如果我在控制器中尝试这种方法:
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Company company = db.Company.FirstOrDefault(u => u.ID == id);
if (company == null)
{
return HttpNotFound();
}
return View(company);
我只是在我的观点中得到这个文字: System.Collections.Generic.HashSet`1 [KPForms.Models.Company]
关于我哪里出错的提示?
修改: 我也在视图中尝试了很多种口味。 视图中的当前代码:
<div>
<h4>Company</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.CompanyName)
</dt>
<dd>
@Html.DisplayFor(model => model.CompanyName)
</dd>
<dd>
@Html.DisplayFor(model => model.Firm)
</dd>
</dl>
</div>
在视图中也尝试了一个foreach:
<div>
<h4>Company</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.CompanyName)
</dt>
<dd>
@Html.DisplayFor(model => model.CompanyName)
</dd>
<dd>
@foreach (var item in Model) {
@Html.Displayfor(item => item.Firm)
</dd>
</dl>
</div>
答案 0 :(得分:1)
首先,很高兴看到你的View代码看起来像什么。
没有那个,我想我会为你提供一个有效的解决方案:
<强>控制器:强>
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Company company = db.Company.FirstOrDefault(u => u.ID == id);
if (company == null)
{
return HttpNotFound();
}
return View(company);
}
查看:强>
@model KPForms.Models.Company
<p>Company: @Model.CompanyName</p>
<p>Firms:</p>
<ul>
@foreach(var firm in Model.Firm){
<li>@firm.FirstName</li>
}
</ul>