2011-01-10 19 views
0

Problem, eine generische Liste mit Büchern und seinen Autoren im Ansichtszustand anzuzeigen. Ein Buch kann einen, zwei oder drei Autoren haben.Zeigen Sie eine Ansicht mit vielen zu vielen Beziehung

Wie soll ich eine Liste anzeigen, die viele Bücher mit richtigen Autoren in der Ansichtsebene enthält?

// Fullmetalboy

Die folgenden Tabellen der Datenbank ist:

Bok (eng Buch.)

  • BokID
  • Titel
  • Styckpris
  • Sammanfattning

Bok_Forfattare (engl. BOOK_AUTHOR)

  • Bok_ForfattareID
  • BokID
  • ForfattareID

Forfattare (eng. Autor)

  • 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 = "server"> 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" 

value = "+ In den Warenkorb" /> <%: 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; } 
    } 
} 

Antwort

0

ich Ihr Ansichtsmodell in zwei geteilt würde Viewmodel:

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; } 
} 

Erstellen Sie für jedes in den Suchergebnissen zurückgegebene Buch ein neues BookSearchResultViewModel, und weisen Sie das Buch Boks zu. Dann hole die Autoren und hefte sie an Bok_Forfattares. Fügen Sie dieses Buch als Nächstes Ihrer SokningPerformSearchViewModel.Boks-Liste hinzu. Abschließend senden Sie das SokningPerformSearchViewModel an Ihre Ansicht zurück.

Verwandte Themen