Skip to main content

Umbraco 7 - Partial View - Get RSS Feed and Check Status Code - C# - Razor

The following script displays an RSS feed from another web site and first cehcks to see if the feed is available.

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@using System.Xml;
           var rssFeedTitle = @ViewData["RSStitle"];
  var rssFeedURL = @ViewData["RSSURL"];


var request = (HttpWebRequest)WebRequest.Create("");
request.Method = "HEAD";

var response = (HttpWebResponse)request.GetResponse();

//Get the XML from remote URL
XmlDocument xml = new XmlDocument();

//URL currently hardcoded - but you could use a macro param to pass in URL
xml.Load("" + @rssFeedURL);

//Select the nodes we want to loop through
//XmlNodeList nodes = xml.SelectNodes("//item[position() <= 3]");
XmlNodeList nodes = xml.SelectNodes("//item");

//Traverse the entire XML nodes.
foreach (XmlNode node in nodes)

var title = node.SelectSingleNode("title").InnerText;
var link = node.SelectSingleNode("link").InnerText;

<h2><a href="@link" target="_blank" title="@title">@title</a></h2>

var description = node.SelectSingleNode("description").InnerText;

if(description.Length > 300)
<p><a href="@link" target="_blank" title="@title">View full details</a></p>



This following code should be in your teplate calling the Partial View:

@Html.Partial("RSSFeedGeneric", new ViewDataDictionary{{"RSStitle","GMC Jobs"},{"RSSURL",""}} )


Popular posts from this blog

Umbraco 7 - C# Razor - Passing a parameter variable from a Template to a Partial View.

Passing a parameter variable from a Template to a Partial View Example - Passing a Page Id to a Partial View.
In the example below we are passing 3 page Ids (1090. 1091, 1092) to a partial view.  The Partial View will display the details for each of these nodes on a home page.  See final output below.

1) In your Template:
@Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1090}}) @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1091}}) @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1092}})

2) The Partial View:
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage @{ var thisPageId = 1090; var stringPage = @ViewData["pageId"]; thisPageId = Convert.ToInt32(stringPage); } <div class="col-md-4"> <article class="common-blog-pos…

Umbraco 7 Hide a page from Navigation or Sub Navigation with umbracoNaviHide using Razor in a template or partial view

How to Allow the user to Hide a Page from Navigation in Umbraco 7. By using a tick box:
This example shows hide the Search Results page from the main navigation in umbraco 7.

1)  In your Document Type add a property called "umbracoNaviHide", it must be called "umbracoNaviHide"

The property should be a tick box, so it should be a "True/False "

2) In your Navigation, add the highlighted code to your for each loop that writes out the navigation:

  @foreach(var p in homePage.Children().Where("visible"))
                            write out navigation

3) Now when the user ticks Hide from Nav in the backend, the page will not show in the navigation:

Umbraco 7 Get Media images by ID when using the Multi Media Picker to display a Gallery

Umbraco 7 Get Media images by ID when using the Multi Media Picker

This is usefull when creating a gallery of images.

1) In your Doctype add the Multiple Media Picker

2) Umbraco 7 Razor code snippet partial:

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@helper RemoveExtensions(string stringIn)
 var thisTitle = stringIn;
                                        thisTitle = thisTitle.Replace(".jpg", "");
                                        thisTitle = thisTitle.Replace(".png", "");
                                        thisTitle = thisTitle.Replace(".jpeg", "");
                                        thisTitle = thisTitle.Replace(".gif", "");
                                        thisTitle = thisTitle.Replace(".bmp", "");
                                        thisTitle = thisTitle.Replace("-", " ");
                                        thisTitle = thisT…