我在遇到问题,view
不允许我显示全部信息。如何使用@ Html.DisplayFor显示来自另一个类的信息?
WorseningParameter类
public class MatrixWorseningParameter
{
[Key]
public int worseningParameterID { get; set; }
public int paramID { get; set; }
public int paramID2 { get; set; }
public virtual MatrixParameter MatrixParameters { get; set; }
public virtual ICollection<MatrixWorseningPrinciple> MatrixWorseningPrinciples { get; set; }
}
参数类
public class MatrixWorseningParameter
{
[Key]
public int worseningParameterID { get; set; }
[Display(Name = "Main Parameter")]
public int paramID { get; set; }
[Display(Name = "Worsening Parameter")]
public int paramID2 { get; set; }
public virtual MatrixParameter MatrixParameters { get; set; }
public virtual ICollection<MatrixWorseningPrinciple> MatrixWorseningPrinciples { get; set; }
}
查看
@model Main.Models.Matrix.MatrixParameter
<tbody>
@foreach (var item in Model.MatrixWorseningParameters)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.paramID2)
@Html.DisplayFor(modelItem => item.MatrixParameters.fullParam)
</td>
<td></td>
<td>
@Html.ActionLink("Add", "../MatrixWorseningParameters/Create", new { id = Model.paramID })
</td>
</tr>
}
</tbody>
控制器
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
MatrixWorseningParameter matrixWorseningParameter = db.WorseningParameters.Find(id);
if (matrixWorseningParameter == null)
{
return HttpNotFound();
}
return View(matrixWorseningParameter);
}
结果我得到的看法是它显示正确paramID2
数,但可悲的文字来指代paramID
不正确。它正在显示paramID
的文字。
我该怎么做才能克服这个问题?
在视图代码的顶部是否有'@model Product'语法?如果是这样,你确定这个语法的工作原理:'@foreach(var in model.Condition)'?不应该是'@foreach(Model.Conditions中的var item)'吗? – ekad
我很困惑。您的**模型**是**单个产品对象**;你想显示** name **的值。 **条件**类没有**名称**属性。如果你想从产品中显示** name **,你甚至不需要** foreach **循环。 – Win
@ekad我注意到Condition的语法,并更新了我的代码以反映复数。 –