【发布时间】:2019-11-05 12:07:24
【问题描述】:
我一直在尝试通过使用 @foreach() 来显示记录及其相关记录,但每次我不断收到错误“foreach 语句无法对类型的变量进行操作..”。 VS 解决方案基于 Code First 模型,此操作仅针对单个类。 任何有关相同的帮助和指导都会有所帮助:
模型:
public class SingleView //USSD
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string Client { get; set; }
public string PolicyNo { get; set; }
public Nullable<short> PolicyType { get; set; }
public string InsurerName { get; set; }
public Nullable<System.DateTime> RenewalDate { get; set; }
public string Status { get; set; }
public string Telephone { get; set; }
}
控制器
public ActionResult Details(Int id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
SingleView singleView = db.SingleViews.Find(id);
if (singleView == null)
{
return HttpNotFound();
}
return View(singleView);
}
观点:
@model MinetSingleView.Models.SingleView
@{
@foreach (var item in Model)
{
<tr>
<td>@Html.DisplayFor(model => model.Client)</td>
<td> @Html.DisplayFor(model => model.InsurerName)</td>
<td>Product Type</td>
<td>@Html.DisplayFor(model => model.PolicyType)</td>
<td>@Html.DisplayFor(model => model.RenewalDate)</td>
<td>@Html.DisplayFor(model => model.PolicyNo)</td>
<td>@Html.DisplayFor(model => model.Telephone)</td>
<td>@Html.DisplayFor(model => model.Status)</td>
</tr>
}
}
详细信息部分使用自动增量“ID”作为 id 参数 例如本地主机:65129/Home/Details/16
【问题讨论】:
-
"及其相关记录" - 但是您的代码中没有任何内容表明“相关记录”,您查询单个记录 (
.Find()) 并返回一个到视图,而不是多个。 -
所以基本上 Find() 用于返回单个记录?我可以用什么来返回多个
-
你使用
.Where(r => r.SomeCondition)。 -
如果@model List
那么只需要迭代
标签: c# sql asp.net-mvc