I was looking for something similar to Velocity's #include
for ASP.NET. <% Response.WriteFile([filename]); %>
works well, but a .NET control for this could be nice. Here is my attempt (MIT license):
using System.IO; using System.Web; using System.Web.UI; namespace FooControls { public class LiteralContentFromFile : Control { public string Path { get; set; } protected override void Render(HtmlTextWriter writer) { var server = HttpContext.Current.Server; var physicalPath = server.MapPath(Path); var fileContents = File.ReadAllText(physicalPath); writer.Write(fileContents); } } }
Usage in an .aspx file (WebForms or ASP.NET MVC):
<%@ Register TagPrefix="foo" Namespace="FooControls" Assembly="FooControls" %> ... <foo:LiteralContentFromFile runat="server" Path="~/path/to/file" />
Edit: subclassing System.Web.UI.Control
instead of System.Web.UI.WebControls.WebControl
which added unnecessary and unwanted behavior (for example, wrapped the output with <span>
).
No comments:
Post a Comment