这是我的控制人员:
public ActionResult Details(int? id)
{
if (id == null)
{
return RedirectToAction("Index");
}
var cor_pay_schedules = db.COR_PAY_SCHEDULES.Where(x=> x.PAY_SCHEDULE_GROUP_ID == id).ToList();
if (cor_pay_schedules == null)
{
return HttpNotFound();
}
return View(cor_pay_schedules);
}
并且,查看:
@model IEnumerable<PartnerShips.COR_PAY_SCHEDULES>
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<div>
<h4>TMP_UNI_PAY_SCHEDULES</h4>
<hr />
<dl class="dl-horizontal">
@foreach (var q in Model)
{
<dt>
@Html.DisplayNameFor(modelItem => q.BEGIN_DATE)
</dt>
<dd>
@Html.DisplayFor(modelItem => q.BEGIN_DATE)
</dd>
<dt>
@Html.DisplayNameFor(modelItem => q.END_DATE)
</dt>
<dd>
@Html.DisplayFor(modelItem => q.END_DATE)
</dd>
<dt>
@Html.DisplayNameFor(modelItem => q.AMOUNT_PERCENTAGE)
</dt>
<dd>
@Html.DisplayFor(modelItem => q.AMOUNT_PERCENTAGE)
</dd>
}
</dl>
</div>
在q
中,它正确检索列表,但它会引发异常:
编译器错误消息:CS0121:以下方法或属性之间的调用不明确:&#39; System.Web.Mvc.Html.DisplayNameExtensions.DisplayNameFor(System.Web.Mvc.HtmlHelper&gt ;,System.Linq.Expressions .Expression&GT;)&#39;和&#39; System.Web.Mvc.Html.DisplayNameExtensions.DisplayNameFor,System.DateTime&gt;(System.Web.Mvc.HtmlHelper&gt;,System.Linq.Expressions.Expression,System.DateTime&gt;&gt;)&#39;
出了什么问题?
答案 0 :(得分:0)
只需更改
@model IEnumerable<PartnerShips.COR_PAY_SCHEDULES>
到
@model List<PartnerShips.COR_PAY_SCHEDULES>
答案 1 :(得分:0)
基本上,乔治发生的事情是不可思议的,当你尝试时并不喜欢 显示其模型的实际实例的属性名称。
它会要求您直接从模型显示它,例如:
@Html.DisplayNameFor(model => model.END_DATE)
而不是显示实例中的名称
@Html.DisplayNameFor(modelItem => q.END_DATE)
我认为更多&#34;正确&#34;这样做的方法。
关键是字段的名称不会因迭代而改变 从迭代变量中显示它是相当不合逻辑的。
编辑:Ienumerable CAN接收.ToList()它基本上只是一个支持简单迭代的列表。