Modified HTML helper to allow you to render a single fieldset from an Archtype model.

(I Needed to render the first review in a list of review blocks)
This commit is contained in:
Jamie Gilbert
2016-02-05 14:33:02 +00:00
parent 13b59d0d61
commit f22d3cdef3
@@ -12,6 +12,56 @@ namespace Archetype.Extensions
/// </summary>
public static class HtmlHelperExtensions
{
/// <summary>
/// Renders a single archtype partial from a fieldset
/// </summary>
/// <param name="htmlHelper">The HTML helper.</param>
/// <param name="fieldsetModel">The fieldset model.</param>
/// <returns></returns>
public static IHtmlString RenderArchetypePartial(this HtmlHelper htmlHelper, ArchetypeFieldsetModel fieldsetModel)
{
return RenderPartial(htmlHelper, fieldsetModel, null, null);
}
/// <summary>
/// Renders the fieldset partial
/// </summary>
/// <param name="htmlHelper">The HTML helper.</param>
/// <param name="fieldsetModel"></param>
/// <param name="partialPath">The partial path.</param>
/// <param name="viewDataDictionary">The view data dictionary.</param>
/// <returns></returns>
private static IHtmlString RenderPartial(HtmlHelper htmlHelper, ArchetypeFieldsetModel fieldsetModel, string partialPath, ViewDataDictionary viewDataDictionary)
{
var context = HttpContext.Current;
if (fieldsetModel == null || context == null)
{
return new HtmlString("");
}
var sb = new StringBuilder();
var pathToPartials = "~/Views/Partials/Archetype/";
if (!string.IsNullOrEmpty(partialPath))
{
pathToPartials = partialPath;
}
var partial = pathToPartials + fieldsetModel.Alias + ".cshtml";
if (System.IO.File.Exists(context.Server.MapPath(partial)))
{
sb.AppendLine(htmlHelper.Partial(partial, fieldsetModel, viewDataDictionary).ToString());
}
else
{
LogHelper.Info<ArchetypeModel>(string.Format("The partial for {0} could not be found. Please create a partial with that name or rename your alias.", context.Server.MapPath(partial)));
}
return new HtmlString(sb.ToString());
}
/// <summary>
/// Renders the archetype partials.
/// </summary>
@@ -72,31 +122,11 @@ namespace Archetype.Extensions
{
var context = HttpContext.Current;
if (archetypeModel == null || context == null)
{
return new HtmlString("");
}
var sb = new StringBuilder();
var pathToPartials = "~/Views/Partials/Archetype/";
if (!string.IsNullOrEmpty(partialPath))
{
pathToPartials = partialPath;
}
foreach (var fieldsetModel in archetypeModel)
{
var partial = pathToPartials + fieldsetModel.Alias + ".cshtml";
if (System.IO.File.Exists(context.Server.MapPath(partial)))
{
sb.AppendLine(htmlHelper.Partial(partial, fieldsetModel, viewDataDictionary).ToString());
}
else
{
LogHelper.Info<ArchetypeModel>(string.Format("The partial for {0} could not be found. Please create a partial with that name or rename your alias.", context.Server.MapPath(partial)));
}
sb.AppendLine(RenderPartial(htmlHelper, fieldsetModel, partialPath, viewDataDictionary).ToString());
}
return new HtmlString(sb.ToString());