Показать представление со многими ко многим отношениям - PullRequest
0 голосов
/ 10 января 2011

Не удается отобразить общий список с книгами и их авторами в состоянии просмотра.У книги может быть один, два или три автора.

Как отобразить список, содержащий много книг с правильными авторами на уровне просмотра?

// Fullmetalboy

следующие таблицы базы данных:

Bok (англ. Book)

  • BokID
  • Titel
  • Styckpris
  • Sammanfattning

Bok_Forfattare (англ. Book_Author)

  • Bok_ForfattareID
  • BokID
  • ForfattareID

Форфаттареангл. Author)

  • 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 = "+ Добавить в корзину" /> <%: 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; } 
    }
}

1 Ответ

0 голосов
/ 11 января 2011

Я бы разделил вашу ViewModel на две 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; }
}

Для каждой книги, возвращенной в результатах поиска, создайте новую BookSearchResultViewModel и назначьте книгу Boks. Затем найдите авторов и прикрепите их к Bok_Forfattares. Затем добавьте эту книгу в свой список SokningPerformSearchViewModel.Boks. Наконец, верните SokningPerformSearchViewModel в представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...