2016-07-29 61 views
-1

我在遇到问题,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的文字。

我该怎么做才能克服这个问题?

+0

在视图代码的顶部是否有'@model Product'语法?如果是这样,你确定这个语法的工作原理:'@foreach(var in model.Condition)'?不应该是'@foreach(Model.Conditions中的var item)'吗? – ekad

+1

我很困惑。您的**模型**是**单个产品对象**;你想显示** name **的值。 **条件**类没有**名称**属性。如果你想从产品中显示** name **,你甚至不需要** foreach **循环。 – Win

+0

@ekad我注意到Condition的语法,并更新了我的代码以反映复数。 –

回答

1

那么你可以添加其他DisplayFor下面说和应该正常工作,因为你说你condition类是product一个孩子,因此会包含product类中定义的所有属性(TitleDescriptionDate

@Html.DisplayFor(model => item.Title) 
+0

其实,我刚刚制定出的条件不是小孩班的产品。这就是为什么你的答案,以及我之前尝试过的,没有奏效。任何想法如何做到这一点,如果他们不是父母和孩子? –

+0

@TJSUK,那么你将不得不在条件类(或)中定义这些属性。从产品(或)继承的产品在你的条件类中有一个实例作为成员变量。 – Rahul

+0

我以为我在'Condition'类中有一个虚拟连接 - 公共虚拟产品产品和'产品'我有相应的ICollections <> –

相关问题