<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chris Hampson &#187; ASP.NET MVC</title>
	<atom:link href="http://www.bleevo.com/category/aspnet-mvc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bleevo.com</link>
	<description>Software, Business &#38; Life</description>
	<lastBuildDate>Fri, 12 Feb 2010 12:27:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>ASP.NET MVC XSLT IViewEngine</title>
		<link>http://www.bleevo.com/2009/06/aspnet-mvc-xslt-iviewengine/</link>
		<comments>http://www.bleevo.com/2009/06/aspnet-mvc-xslt-iviewengine/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 12:29:32 +0000</pubDate>
		<dc:creator>Chris Hampson</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>

		<guid isPermaLink="false">http://www.bleevo.com/?p=123</guid>
		<description><![CDATA[Here is my first attempt at creating a custom view engine for ASP.NET MVC, I was inspired by http://www.worldofwarcraft.com/ which uses the XSL/XML combination with client side transformations. I would assume this saves them a copious amount of bandwidth. I am surprised this hasn’t been done more often which leads me to believe there must [...]]]></description>
			<content:encoded><![CDATA[<p>Here is my first attempt at creating a custom view engine for ASP.NET MVC, I was inspired by <a href="http://www.worldofwarcraft.com/">http://www.worldofwarcraft.com/</a> which uses the XSL/XML combination with client side transformations. I would assume this saves them a copious amount of bandwidth. I am surprised this hasn’t been done more often which leads me to believe there must be some flaws with this approach. But nevertheless here is a View Engine that provides the ability to render out XML/XSLT combos as well as do the transforms server side.</p>
<p>Currently I do not have a reliable way of detecting client side XSLT support but this could be done via interrogating the User Agent or even a XSLT test page that sets a cookie. The real win with this approach I can see is the user downloads your visual elements once (the XSL style sheet) and the data can change numerous times. I will post a more detailed tutorial on how to write your own View Engine at a later date.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #008080; font-style: italic;">//Add this to your GlobalASAX</span>
        <span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">void</span> Application_Start<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            ViewEngines.<span style="color: #0000FF;">Engines</span>.<span style="color: #0000FF;">Clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            ViewEngines.<span style="color: #0000FF;">Engines</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> XsltViewEngine<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;~/Content/Views/&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            RegisterRoutes<span style="color: #000000;">&#40;</span>RouteTable.<span style="color: #0000FF;">Routes</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> XsltViewEngine <span style="color: #008000;">:</span> VirtualPathProviderViewEngine
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> XsltViewEngine<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> xsltHome<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        ViewLocationFormats <span style="color: #008000;">=</span> <span style="color: #008000;">new</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> xsltHome <span style="color: #008000;">+</span> <span style="color: #666666;">&quot;{1}/{0}.xslt&quot;</span>, xsltHome <span style="color: #008000;">+</span> <span style="color: #666666;">&quot;Shared/{0}.xslt&quot;</span> <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
        PartialViewLocationFormats <span style="color: #008000;">=</span> ViewLocationFormats<span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> IView CreatePartialView<span style="color: #000000;">&#40;</span>ControllerContext controllerContext, <span style="color: #FF0000;">string</span> partialPath<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">return</span> <span style="color: #008000;">new</span> XmlView<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> IView CreateView<span style="color: #000000;">&#40;</span>ControllerContext controllerContext, <span style="color: #FF0000;">string</span> viewPath, <span style="color: #FF0000;">string</span> masterPath<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ClientSideXsltSupported<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">return</span> <span style="color: #008000;">new</span> XsltView<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> ViewPath <span style="color: #008000;">=</span> viewPath <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">else</span>
            <span style="color: #0600FF;">return</span> <span style="color: #008000;">new</span> XsltTransformView<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> ViewPath <span style="color: #008000;">=</span> viewPath <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">private</span> <span style="color: #FF0000;">bool</span> ClientSideXsltSupported<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #008080; font-style: italic;">//TODO: work out a way to detect.</span>
        <span style="color: #008080; font-style: italic;">//controllerContext.HttpContext.Request.Cookies[&quot;XsltSupported&quot;]</span>
        <span style="color: #0600FF;">return</span> true<span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> XmlView <span style="color: #008000;">:</span> IView
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Render<span style="color: #000000;">&#40;</span>ViewContext viewContext, <span style="color: #000000;">System.<span style="color: #0000FF;">IO</span></span>.<span style="color: #0000FF;">TextWriter</span> writer<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        var serializer <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlSerializer<span style="color: #000000;">&#40;</span>viewContext.<span style="color: #0000FF;">ViewData</span>.<span style="color: #0000FF;">Model</span>.<span style="color: #0000FF;">GetType</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        var writerSettings <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlWriterSettings <span style="color: #000000;">&#123;</span> OmitXmlDeclaration <span style="color: #008000;">=</span> <span style="color: #0600FF;">true</span> <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var xmlWriter <span style="color: #008000;">=</span> XmlWriter.<span style="color: #0000FF;">Create</span><span style="color: #000000;">&#40;</span>writer, writerSettings<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>xmlWriter <span style="color: #008000;">!=</span> <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
                serializer.<span style="color: #0000FF;">Serialize</span><span style="color: #000000;">&#40;</span>xmlWriter, viewContext.<span style="color: #0000FF;">ViewData</span>.<span style="color: #0000FF;">Model</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> XsltView <span style="color: #008000;">:</span> IView
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> ViewPath <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Render<span style="color: #000000;">&#40;</span>ViewContext viewContext, <span style="color: #000000;">System.<span style="color: #0000FF;">IO</span></span>.<span style="color: #0000FF;">TextWriter</span> writer<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        viewContext.<span style="color: #0000FF;">HttpContext</span>.<span style="color: #0000FF;">Response</span>.<span style="color: #0000FF;">ContentType</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;text/xml&quot;</span><span style="color: #008000;">;</span>
        writer.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;&lt;?xml version=<span style="color: #008080; font-weight: bold;">\&quot;</span>1.0<span style="color: #008080; font-weight: bold;">\&quot;</span> encoding=<span style="color: #008080; font-weight: bold;">\&quot;</span>UTF-8<span style="color: #008080; font-weight: bold;">\&quot;</span>?&gt;&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        writer.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;&lt;?xml-stylesheet type=<span style="color: #008080; font-weight: bold;">\&quot;</span>text/xsl<span style="color: #008080; font-weight: bold;">\&quot;</span> href=<span style="color: #008080; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #008000;">+</span> VirtualPathUtility.<span style="color: #0000FF;">ToAbsolute</span><span style="color: #000000;">&#40;</span>ViewPath<span style="color: #000000;">&#41;</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot;<span style="color: #008080; font-weight: bold;">\&quot;</span>?&gt;&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        var serializer <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlSerializer<span style="color: #000000;">&#40;</span>viewContext.<span style="color: #0000FF;">ViewData</span>.<span style="color: #0000FF;">Model</span>.<span style="color: #0000FF;">GetType</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        var writerSettings <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlWriterSettings <span style="color: #000000;">&#123;</span> OmitXmlDeclaration <span style="color: #008000;">=</span> <span style="color: #0600FF;">true</span> <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var xmlWriter <span style="color: #008000;">=</span> XmlWriter.<span style="color: #0000FF;">Create</span><span style="color: #000000;">&#40;</span>writer, writerSettings<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>xmlWriter <span style="color: #008000;">!=</span> <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
                serializer.<span style="color: #0000FF;">Serialize</span><span style="color: #000000;">&#40;</span>xmlWriter, viewContext.<span style="color: #0000FF;">ViewData</span>.<span style="color: #0000FF;">Model</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> XsltTransformView <span style="color: #008000;">:</span> IView
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> ViewPath <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Render<span style="color: #000000;">&#40;</span>ViewContext viewContext, <span style="color: #000000;">System.<span style="color: #0000FF;">IO</span></span>.<span style="color: #0000FF;">TextWriter</span> writer<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        var serializer <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlSerializer<span style="color: #000000;">&#40;</span>viewContext.<span style="color: #0000FF;">ViewData</span>.<span style="color: #0000FF;">Model</span>.<span style="color: #0000FF;">GetType</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var ms <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> MemoryStream<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var xmlWriter <span style="color: #008000;">=</span> XmlWriter.<span style="color: #0000FF;">Create</span><span style="color: #000000;">&#40;</span>ms<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>xmlWriter <span style="color: #008000;">!=</span> <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
                    serializer.<span style="color: #0000FF;">Serialize</span><span style="color: #000000;">&#40;</span>xmlWriter, viewContext.<span style="color: #0000FF;">ViewData</span>.<span style="color: #0000FF;">Model</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            ms.<span style="color: #0000FF;">Seek</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span>, SeekOrigin.<span style="color: #0000FF;">Begin</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            var transformer <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XslCompiledTransform<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">true</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            transformer.<span style="color: #0000FF;">Load</span><span style="color: #000000;">&#40;</span>viewContext.<span style="color: #0000FF;">HttpContext</span>.<span style="color: #0000FF;">Server</span>.<span style="color: #0000FF;">MapPath</span><span style="color: #000000;">&#40;</span>ViewPath<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            transformer.<span style="color: #0000FF;">Transform</span><span style="color: #000000;">&#40;</span>XmlReader.<span style="color: #0000FF;">Create</span><span style="color: #000000;">&#40;</span>ms<span style="color: #000000;">&#41;</span>, <span style="color: #0600FF;">null</span>, writer<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.bleevo.com/2009/06/aspnet-mvc-xslt-iviewengine/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Testing WP-Syntax</title>
		<link>http://www.bleevo.com/2009/02/testing-wp-syntax/</link>
		<comments>http://www.bleevo.com/2009/02/testing-wp-syntax/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 06:23:02 +0000</pubDate>
		<dc:creator>Chris Hampson</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>

		<guid isPermaLink="false">http://www.bleevo.com/?p=42</guid>
		<description><![CDATA[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 public static class StylesheetExtensions &#123; public static string Stylesheet&#40;this HtmlHelper helper, string [...]]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">class</span> StylesheetExtensions
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> Stylesheet<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span> HtmlHelper helper, <span style="color: #FF0000;">string</span> file<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">return</span> Stylesheet<span style="color: #000000;">&#40;</span>helper, <span style="color: #008000;">new</span> <span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> file <span style="color: #000000;">&#125;</span>, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> Stylesheet<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span> HtmlHelper helper, <span style="color: #FF0000;">string</span> file, <span style="color: #FF0000;">object</span> htmlAttributes<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">return</span> Stylesheet<span style="color: #000000;">&#40;</span>helper, <span style="color: #008000;">new</span> <span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> file <span style="color: #000000;">&#125;</span>, <span style="color: #008000;">new</span> RouteValueDictionary<span style="color: #000000;">&#40;</span>htmlAttributes<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> Stylesheet<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span> HtmlHelper helper, <span style="color: #FF0000;">string</span> file, RouteValueDictionary htmlAttributes<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">return</span> Stylesheet<span style="color: #000000;">&#40;</span>helper, <span style="color: #008000;">new</span> <span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> file <span style="color: #000000;">&#125;</span>, htmlAttributes<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> Stylesheet<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span> HtmlHelper helper, <span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> files<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">return</span> Stylesheet<span style="color: #000000;">&#40;</span>helper, files, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> Stylesheet<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span> HtmlHelper helper, <span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> files, <span style="color: #FF0000;">object</span> htmlAttributes<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">return</span> Stylesheet<span style="color: #000000;">&#40;</span>helper, files, <span style="color: #008000;">new</span> RouteValueDictionary<span style="color: #000000;">&#40;</span>htmlAttributes<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> Stylesheet<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span> HtmlHelper helper, <span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> files, RouteValueDictionary htmlAttributes<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        StringBuilder output <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StringBuilder<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>var file <span style="color: #0600FF;">in</span> files<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            TagBuilder link <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> TagBuilder<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;link&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            link.<span style="color: #0000FF;">MergeAttribute</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;rel&quot;</span>, <span style="color: #666666;">&quot;stylesheet&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            link.<span style="color: #0000FF;">MergeAttribute</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;type&quot;</span>, <span style="color: #666666;">&quot;text/css&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #FF0000;">string</span> absoluteFile <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;/Content/css/&quot;</span> <span style="color: #008000;">+</span> file<span style="color: #008000;">;</span>
            link.<span style="color: #0000FF;">MergeAttribute</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;href&quot;</span>, absoluteFile<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            link.<span style="color: #0000FF;">MergeAttributes</span><span style="color: #000000;">&#40;</span>htmlAttributes<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> 
            output.<span style="color: #0000FF;">Append</span><span style="color: #000000;">&#40;</span>link.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span>TagRenderMode.<span style="color: #0000FF;">SelfClosing</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
        <span style="color: #0600FF;">return</span> output.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.bleevo.com/2009/02/testing-wp-syntax/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
