Hi,
Please refer below code.
Index.aspx(View)
<div>
<% using (Html.BeginForm("Index", "Home"))
{ %>
<%= Html.TextBox("Url")%>
<input type="submit" value="Search" value="Get Feed" />
<% } %>
<br />
<% Html.RenderPartial("RssFeed");
%>
</div>
HomeController
public class HomeController : Controller
{
private string _feedUrl;
public string FeedUrl
{
get { return _feedUrl; }
set { _feedUrl = value; }
}
private int _items;
public int Items
{
get { return _items; }
set { _items = value; }
}
private XmlNamespaceManager _xmlnsm;
public ActionResult Index(string Url)
{
string _url = Url;
if (string.IsNullOrEmpty(_url))
{
_url = "http://www.asp.net/news/rss.ashx";
}
List<RssFeed> feeds = GetFeeds(_url);
return View(feeds);
}
private List<RssFeed> GetFeeds(string feedUrl)
{
_feedUrl = feedUrl;
XPathNavigator xpn = new XPathDocument(_feedUrl).CreateNavigator();
_xmlnsm = XmlHelper.GetXmlNameSpaceManager(xpn);
var feeds = xpn.Select("/x:rss/x:channel/x:item", _xmlnsm);
List<RssFeed> feed = new List<RssFeed>();
foreach (XPathNavigator item in feeds)
{
feed.Add(new RssFeed(_xmlnsm, item));
}
return feed;
}
}
PartialView(RsFeed.asax)
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<MvcApplication1.Controllers.RssFeed>>" %>
<table>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<a href="<%= item.link2 %>">View Full History</a>
<p>
<a href="<%= item.link1 %>">
<%: item.link1%></a>
<br />
<%: item.Title %>
</p>
<p>
<%: item.Description %>
</p>
<hr />
</td>
</tr>
<% } %>
</table>
RssFeed Class
public class RssFeed
{
public RssFeed(XmlNamespaceManager _xmlnsm, XPathNavigator xpn)
{
this.Title = xpn.SelectSingleNode("x:title", _xmlnsm).Value;
this.Description = xpn.SelectSingleNode("x:description", _xmlnsm).Value;
this.link1 = xpn.SelectSingleNode("x:link", _xmlnsm).Value;
this.link2 = xpn.SelectSingleNode("x:link", _xmlnsm).Value;
}
public string Title { get; set; }
public string Description { get; set; }
public string link1 { get; set; }
public string link2 { get; set; }
public string FeedUrl { get; set; }
}
XmlHelper
public class XmlHelper
{
public static XmlNamespaceManager GetXmlNameSpaceManager(XPathNavigator xpn)
{
xpn.MoveToFollowing(XPathNodeType.Element);
XmlNamespaceManager xmlnsm = new XmlNamespaceManager(xpn.NameTable);
xmlnsm.AddNamespace("x", xpn.NamespaceURI);
foreach (KeyValuePair<string, string> xns in xpn.GetNamespacesInScope(XmlNamespaceScope.All))
xmlnsm.AddNamespace(xns.Key, xns.Value);
return xmlnsm;
}
}
Screenshot