通过mvc razor中的RSS feed模型循环

时间:2014-12-16 17:30:06

标签: asp.net-mvc razor rss

我在我的模型中生成了一个rss链接列表,我希望在我的网页上显示这些链接。该模型工作正常,链接的显示在视图上正常工作。我的问题是,我想在2个并排列中显示链接。第一列中的前5个链接和第二列中的后5个链接。现在,我在每列中显示所有10个链接。我确信有一种简单的方法可以做到这一点,但我不确定如何做到这一点。任何帮助将不胜感激。

这是我的模特:

namespace OA.Models
{
public class Rss1
{
    public string Link { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
}

public class Rss1Reader
{
   private static string _blogURL = "http://www.test.com/blogs/news/feed/";
    public static IEnumerable<Rss1> GetRss1Feed()
    {
        XDocument feedXml = XDocument.Load(_blogURL);
        var feeds = from feed in feedXml.Descendants("item")
                    select new Rss1
                    {
                        Title = feed.Element("title").Value,
                        Link = feed.Element("link").Value,
                        Description = Regex.Match(feed.Element("description").Value, @"^.{1,180}\b(?<!\s)").Value
                    };
        return feeds;
    }
}

}

以下是我的观点:

@model IEnumerable<OA.Models.Rss1>


        <table style="width: 80%;margin-left: auto;margin-right: auto;margin-top:10px;margin-bottom:25px;">

            <tr>
                <td>
                    <div id="RSSCOL1">
                            <span style="font-size:.9em;">
                                @foreach (var item in Model)
                                {
                                    <a href="@item.Link" target="_blank">@item.Title</a><br />
                                }
                            </span>

                    </div>
                </td>
                <td>
                    <div id="RSSCOL2">
                        <span style="font-size:.9em;">
                             @foreach (var item in Model)
                            {

                                <a href="@item.Link" target="_blank">@item.Title</a><br />
                            }
                        </span>
                    </div>
                </td>
            </tr>
         </table>

1 个答案:

答案 0 :(得分:0)

实现此目的的最快方法是将第一个和第二个循环更新为此...

@foreach (var item in Model.Take(Model.Count()/2))
...
@foreach (var item in Model.Skip(Model.Count()/2))

但是,您可能需要考虑一个显示无序列表的循环,然后使用css将其放入列中。如果有人在手机上看你的页面而不是27英寸的屏幕怎么办?您可能希望列以不同方式显示。祝好运!请看这个链接:How to display an unordered list in two columns?