2016-01-13 60 views
0

傳入字典的模型項目類型爲System.Collections.Generic.List'1[SecundaireSchool.Models.tblRapporten],但此字典需要模型項目類型SecundaireSchool.Models.tblRapporten傳入字典的模型項目類型爲'System.Collections.Generic.List`1 [SecundaireSchool.Models.tblRapporten]'

型號tblStudenten

public partial class tblStudenten 
{ 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] 
    public tblStudenten() 
    { 
     this.tblRapportens = new HashSet<tblRapporten>(); 
    } 

    public int student_id { get; set; } 
    public string naam { get; set; } 
    public string voornaam { get; set; } 
    public string emailadres { get; set; } 
    public string foto { get; set; } 
    public int klas_id { get; set; } 

    public virtual tblKlassen tblKlassen { get; set; } 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] 
    public virtual ICollection<tblRapporten> tblRapportens { get; set; } 
    public virtual IEnumerable<SelectListItem> Klassen { get; set; } 
} 

型號tblRapporten

public partial class tblRapporten 
{ 
    public int rapport_id { get; set; } 
    public double punt { get; set; } 
    public int vak_id { get; set; } 
    public int student_id { get; set; } 

    public virtual tblStudenten tblStudenten { get; set; } 
    public virtual tblVakken tblVakken { get; set; } 
} 

StudentController

public ActionResult Report(int id) 
    { 
     return View(db.tblRapportens.Where(r => r.student_id == id).ToList()); 
    } 

查看報告

@model SecundaireSchool.Models.tblRapporten 

@{ 
    ViewBag.Title = "Report"; 
} 

<h2>Report</h2> 

<div> 
<h4>tblRapporten</h4> 
<hr /> 
<dl class="dl-horizontal"> 
    <dt> 
     @Html.DisplayNameFor(model => model.punt) 
    </dt> 

    <dd> 
     @Html.DisplayFor(model => model.punt) 
    </dd> 

    <dt> 
     @Html.DisplayNameFor(model => model.tblStudenten.naam) 
    </dt> 

    <dd> 
     @Html.DisplayFor(model => model.tblStudenten.naam) 
    </dd> 

    <dt> 
     @Html.DisplayNameFor(model => model.tblVakken.vak) 
    </dt> 

    <dd> 
     @Html.DisplayFor(model => model.tblVakken.vak) 
    </dd> 

    </dl> 
</div> 
    <p> 
     @Html.ActionLink("Edit", "Edit", new { id = Model.rapport_id }) | 
     @Html.ActionLink("Back to List", "Index") 
    </p> 

我知道我的控制器列表有問題,但我不知道如何解決這個問題。 有人嗎?

+0

顯示您的看法。 –

+2

您的看法期望一個單一的項目,你正在通過一個列表。 –

+0

我剛加了我的看法。 – user3593591

回答

1

您的看法預計的模型是單個SecundaireSchool.Models.tblRapporten對象,但您的控制器正在爲您的模型分配List<SecundaireSchool.Models.tblRapporten>。將視圖中的模型類型更改爲@model IList<SecundaireSchool.Models.tblRapporten>,然後開始營業。

+0

或者那個或者'返回View(db.tblRapportens.Where(r => r.student_id == id).. FirstOrDefault());'假設OP期望查詢只返回一個值:) –

相關問題