显示具有多对多关系的视图

时间:2011-01-10 19:45:58

标签: asp.net-mvc asp.net-mvc-2

在查看状态下显示书籍及其作者的通用列表时出现问题。 一本书可以有一个,两个或三个作者。

如何在视图级别显示包含许多具有正确作者的书籍的列表?

// Fullmetalboy

数据库的以下表格是:

Bok(eng.Book)

  • BokID
  • 性标题
  • Styckpris
  • Sammanfattning

Bok_Forfattare(eng.Book_Author)

  • Bok_ForfattareID
  • BokID
  • ForfattareID

Forfattare(英国作者)

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

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

%GT;

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

RUNAT = “服务器” &GT;         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 =“+加入购物车”/&gt;                         &lt;%:bok.Sammanfattning%&gt;                             ..       

<% } %> 
</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 :(得分:0)

我会将您的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返回到View。