2009-08-10 10 views
2

に私はasp.netサイトからasp.netへのオーバーサイトを移行していますし、いずれかのページが以下のようにデータリストを持っていますASPと同等のものです:データリストはasp.net-MVC

<asp:DataList ID="MyDataList" runat="server" BackColor="#EEEEEE" CellPadding="10" 
    ItemStyle-HorizontalAlign="Center" GridLines="Both" Width="750" RepeatDirection="Horizontal" 
    RepeatColumns="4" RepeatLayout="Table" ItemStyle-VerticalAlign="Top"> 
    <ItemTemplate> 
     <table> 
      <tr align="center"> 
       <td valign="top"> 
        <table> 
         <tr> 
          <td width="30%"> 
          </td> 
          <td> 
           <asp:HyperLink ID="HyperLink1" runat="server"> 
           <asp:Image style="cursor:pointer" CssClass="instant ishadow50" ID="lnkEnlarge" runat="server"></asp:Image></asp:HyperLink> 
          </td> 
          <td width="30%"> 
          </td> 
         </tr> 
        </table> 
       </td> 
      </tr> 
      <tr align="center"> 
       <td> 
        <asp:Label CssClass="Comments" ID="lblComment" runat="server"></asp:Label><br> 
       </td> 
      </tr> 
     </table> 
    </ItemTemplate> 
</asp:DataList> 

asp.net-mvcに相当するものは何ですか?どのように移行するつもりですか?

答えて

5

ASP.NET MVCにはサーバーコントロールがありません。 foreachループをモデルで使用することもできます(部分的な表示も可能です)。

別のオプションは、Html helperと書かれています。

2

CDが指摘しているように、基本的なやり方はちょうどHtmlを書くことです。古い学校に戻してください。より抽象的なアプローチを取ることを好むなら、より高度なヘルパーがいくつかあります。このようなものの良い選択肢の1つは、MvcContrib gridです。これは、MVCスタイルを使用しながら、一般的に直接HTMLを生成しないようにします。

NB:リンクは、この執筆時点でCodePlexのパブリックリリースをポスト日付にしたMvcContribグリッドのバージョンを指しています。ソースを取得し、それを活用するためにソースをビルドする必要があります。

3
@{ 
     //repeatdirection = Horizontal, RepeatColumns = 4 
     const int NumberOfColumns = 4; 
     int skip = 0; 
     var items = Model.DataStuff.Skip(skip).Take(NumberOfColumns); 
     while(items.Count() > 0) { 
      <tr> 
       @foreach (var item in items) { 
        <td> 
         @Html.ActionLink(item.Name...etc) 
        </td> 
       } 
      </tr> 
      skip += NumberOfColumns; 
      items = Model.Skip(skip).Take(NumberOfColumns); 
     } 
    } 
+0

+1テストしませんでしたが、動作するようです。 –

関連する問題