0

问候我在我的视图顶部看到了一个非常奇怪的信息。我在我的视图上得到这个奇怪的文字:System.Collections.Generic.HashSet`1 [automasis.Models.ElencoProvince] System.Collections.Generic.HashSet

(System.Collections.Generic.HashSet`1 [automasis.Models.ElencoProvince] System.Collections.Generic.HashSet`1 [automasis.Models.ElencoProvince])

我有一个数据库我使用entinty第一个代码进行连接。这里是一个使用模型视图IM:

public IEnumerable<ElencoOmonimi> elencoomonimi { get; set; } 
public IEnumerable<ElencoProvince> elencoprovince { get; set; } 
public IEnumerable<ElencoImmobiliPerDiritti_E_Quote>  elencoimmobiliperditti { get; set; } 
public IEnumerable<ElencoComuni> elencocomuni { get; set; } 
public IEnumerable<ElencoIntestati> elencointestati { get; set; } 

而且contollers:

public ActionResult Index(string searchString, int? id, int? courseID, int? idcom, int? elencoimo) 
{ 
    var viewmodel = new mainview(); 

    viewmodel.elencoomonimi = db.ElencoOmonimis 
     .Where(s => s.Nome.Contains(searchString) || searchString == null || searchString == "") 
     .Include(s => s.ElencoProvinces.Select(t => t.ElencoImmobiliPerDiritti_E_Quote)) 
     .Include(s => s.ElencoProvinces.Select(t => t.ElencoComunis)) 
     .Include(s => s.ElencoProvinces.Select(t => t.ElencoImmobiliPerDiritti_E_Quote.Select(r => r.ElencoIntestatis))) 

     ////.Include(i => i.ElencoOmonimi) 
     ////.Include(i => i.ElencoImmobiliPerDiritti_E_Quote.Select(t => t.ElencoIntestatis)) 
     ////.Include(i => i.ElencoComunis) 
     .OrderBy(i => i.Id); 

    if (id != null) 
    { 
     ViewBag.elencoomonimiID = id.Value; 
     viewmodel.elencoprovince = viewmodel.elencoomonimi.Where(
      i => i.Id == id.Value).Single().ElencoProvinces; 
    } 
    if (idcom != null) 
    { 
     ViewBag.ElencoImmobiliperID = idcom.Value; 
     viewmodel.elencointestati = viewmodel.elencoimmobiliperditti.Where(
      x => x.Id == idcom.Value).Single().ElencoIntestatis; 
    } 
    //if(elencoimo != null) 
    // ViewBag.elencoimoobiliID = id.Value 

    return View(viewmodel); 
} 

而我的观点:

@model automasystem.Models.mainview 

@{ 
    ViewBag.Title = "Index"; 
} 

Dashboard 



@using (Html.BeginForm()) 
{ 

    @Html.TextBox("SearchString") <br /> 
    <input type="submit" value="Filter" /> 
} 

<table class="table"> 
    <tr> 
     <th> 
      Nome 
     </th> 
     <th> 
      Cognome 
     </th> 
     <th> 
      Data Di Nascita 
     </th> 
     <th> 
      Codice Fiscale 
     </th> 
     <th></th> 
    </tr> 

    @foreach (var item in Model.elencoomonimi) 
    { 
     string selectedRow = ""; 
     if (item.Id == ViewBag.elencoomonimiID) 
     { 
      selectedRow = "success"; 
     } 

     <tr class="@selectedRow"> 
      <td> 
       @Html.DisplayFor(modelItem => item.CognomeCercato) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.NomeCercato) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.Cognome) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.DataDiNascita) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.CodiceFiscale) 
      </td> 
      @*<td> 
        @Html.DisplayFor(modelItem => item.Provincia) 
       </td> 

       <td> 
        @Html.DisplayFor(modelItem => item.Fabbricati) 
       </td> 
       <td> 
        @Html.DisplayFor(modelItem => item.Terreni) 
       </td>*@ 
      @if (item.ElencoProvinces != null) 
      { 
       @item.ElencoProvinces 
      } 
      <td> 
       @Html.ActionLink("Select", "Index", new { id = item.Id }) | 
       @Html.ActionLink("Edit", "Edit", new { id = item.Id }) | 
       @Html.ActionLink("Details", "Details", new { id = item.Id }) | 
       @Html.ActionLink("Delete", "Delete", new { id = item.Id }) 
      </td> 
     </tr> 
    } 

我不明白为什么我得到这个对每条记录的是它在数据库上:

System.Collections.Generic.HashSet `1 automasis.Models.ElencoProvince] System.Collections.Generic.HashSet`1 [automasis.Models.ElencoProvince]

回答

4

您在您的视图(嵌入<tr>内而不是内<td>所以才会有这种实际上显示的表上方!)

@if (item.ElencoProvinces != null) 
{ 
    @item.ElencoProvinces 
} 

,将试图输出字符串表示该对象的,以及item.ElencoProvinces.ToString()价值显然是

System.Collections.Generic.HashSet`1 [automasis.Models.ElencoProvince]

如果你不想在你看来ElencoProvinces做什么,只是删除那些几行。如果你想想要它然后遍历哈希集,或从其中的特定项拉出特定信息,并在适当的HTML格式。

相关问题