2011-01-10 114 views
0

存在顯示視圖狀態的書籍及其作者的通用列表問題。 一本書可以有一個,兩個或三個作者。顯示多對多關係的視圖

我該如何顯示一個列表,其中包含許多具有視圖級別的作者的書籍?

// Fullmetalboy

數據庫的下表是:

博克(ENG簿。)

  • BokID
  • 性標題
  • Styckpris
  • Sammanfattning

Bok_Forfattare(eng。作者:BOOK_AUTHOR)

  • Bok_ForfattareID
  • BokID
  • ForfattareID

Forfattare(ENG。作者)

  • ForfattareID
  • Fornamn
  • Efternamn
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 

    Inherits="System.Web.Mvc.ViewPage<BokButik1.ViewModels.SokningPerformSearchViewModel>" 

%>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" 

RUNAT = 「服務器」> PerformSearch

<h2>Sökresultat</h2> 


<table> 
<% foreach (var bok in Model.Boks) { %> 


<tr> 
    <td><%: bok.Titel %> av <%: bok.Bok_Forfattare %></td> 
    <td rowspan="2"><%: bok.Kategori.KategoriNamn %></td> 
    <td rowspan="2"><div id="Div1"><input type="submit" 

值= 「+添加到購物車」/> <%:bok.Sammanfattning%> ..

<% } %> 
</table> 


[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult PerformSearch(string txtSearch, Kategori kategoriNummer) 
{ 

    Search test = new Search(txtSearch, kategoriNummer); 

    var asdf = test.HamtaBokListaFranSokFunktion(); 

    var results = new SokningPerformSearchViewModel 
    { 
     Boks = asdf, 
     Bok_Forfattares = myIBok_ForfattareRepository.HamtaAllaBok_ForfattareNummer() 
    }; 


    return View(results); 
} 

namespace BokButik1.ViewModels 
{ 
    public class SokningPerformSearchViewModel 
    { 
     public List<Bok> Boks { get; set; } 

     public List<Bok_Forfattare> Bok_Forfattares { get; set; } 
    } 
} 

回答

0

我想你的視圖模型分成兩個的ViewModels:

public class SokningPerformSearchViewModel 
{ 
    public IList<BookSearchResultViewModel> Boks { get; set; } 
} 

public class BookSearchResultViewModel 
{ 
    public IList<Bok> Boks { get; set; } 

    public IList<Bok_Forfattare> Bok_Forfattares { get; set; } 
} 

對於搜索結果中返回的每本圖書,請創建一個新的BookSearchResultViewModel並將該書分配給Boks。然後獲取作者並將它們附加到Bok_Forfattares。接下來,將該書添加到您的SokningPerformSearchViewModel.Boks列表中。最後,將SokningPerformSearchViewModel返回到您的視圖。