Files
Umbraco-CMS/src/Umbraco.Web/Mvc/ViewDataContainerExtensions.cs
Shannon Deminick 8fb159ddc2 Changes IThumbnailProvider to exist under Umbraco.Core.Media instead of just Umbraco.Core.
Moves many of the MVC extension methods into the Umbraco.Web.Mvc namespace and tidies up a few other
class's namespaces
2012-09-29 08:07:00 +07:00

47 lines
1.3 KiB
C#

using System.Web.Mvc;
namespace Umbraco.Web.Mvc
{
internal static class ViewDataContainerExtensions
{
private class ViewDataContainer : IViewDataContainer
{
public ViewDataContainer()
{
ViewData = new ViewDataDictionary();
}
public ViewDataDictionary ViewData { get; set; }
}
/// <summary>
/// Creates a new IViewDataContainer but with a filtered ModelState
/// </summary>
/// <param name="container"></param>
/// <param name="prefix"></param>
/// <returns></returns>
public static IViewDataContainer FilterContainer(this IViewDataContainer container, string prefix)
{
var newContainer = new ViewDataContainer();
newContainer.ViewData.ModelState.Merge(container.ViewData.ModelState, prefix);
return newContainer;
}
/// <summary>
/// Returns a new IViewContainer based on the current one but supplies a different model to the ViewData
/// </summary>
/// <param name="container"></param>
/// <param name="model"></param>
/// <returns></returns>
public static IViewDataContainer CopyWithModel(this IViewDataContainer container, object model)
{
return new ViewDataContainer
{
ViewData = new ViewDataDictionary(container.ViewData)
{
Model = model
}
};
}
}
}