public static object GetKey(this ViewContext context, object model)
{
Contract.Requires<ArgumentNullException>(context != null);
Contract.Requires<ArgumentNullException>(model != null);
return ((Func<object, object>)context.ViewData["ViewContextExtensions.GetKey"])(model);
}