现在有一个这么两个类    public class AInfo
    {
        public string BaseInfo;
        public List<CInfo> Files = new List<CInfo>();
    }    public class CInfo
    {
        public int ID;
        public string Name;
    }页面代码如下    <%
        Html.Grid(Model)
            .Columns(c =>
                         {
                             c.For(x => x.BaseInfo).Named("Col A");
                             //c.For(x => x.Teachers).Named("Col B");
                         }
            )
            .Render();
    %>我需要在Col B这列显示一个Files的汇总信息比方说,Files里有2个CInfo,那么Col B这列就要显示2个超链接。现在的问题是,我不知道在c.For里面怎么再遍历这个集合成员的成员比方说,Model是一个AInfo的实例,它的BaseInfo="Test",Files包含2个成员,数值如下:
{ ID=1,Name="A" } { ID=2,Name="B" }然后我想要显示出Col A Col B
Test <a href="http://www.web.com/?ID=1">A</a><a href="http://www.web.com/?ID=2">B</a>这个该怎么做?多谢!

解决方案 »

  1.   

    赞同一楼.
    <table>
    <tr>
         <th>Id</th><th>Title</th><th>Release Date</th>
    </tr>
    <% foreach (Movie m in (IEnumerable)ViewData.Model)
    { %>
    <tr>
         <td><%= m.Id %></td>
         <td><%= Html.Encode(m.Title) %></td>
         <td><%= m.DateReleased %></td>
    </tr>
    <% } %>
    </table>
    类似这种
      

  2.   

    stringBuilder Html = new stringBuilder();
    foreach (Movie m in (IEnumerable)ViewData.Model)
    {
       Html.append("<a href="http://www.web.com/?ID="+m.Id >m.Title</a>");
    }
    然后把这段Html加载到页面! 这是一种方式!
      

  3.   

    嗯……请楼上几位不要答非所问
    直接循环的方式我想过,主要是维护起来麻烦,不到最后关头不会用我在MvcContrib的论坛里贴了这个问题,已经得到满意的回答。这里的帖子过几天再结,我想看看有没有筒子比较钻研Linq的,呵呵。
      

  4.   

    答案揭晓c.For(
    x =>
    string.Join("、",
    x.Files.Select(
    t =>
    string.Format(
    "<a href=\"javascript:PopFile({0});\">{1}</a>",
    t.ID, t.Name)).ToArray()))
    .Named("附件").DoNotEncode();