public static MvcHtmlString PropertyFor <TModel, TValue>(this HtmlHelper <TModel> html, Expression <Func <TModel, TValue> > expression) { if (ModeProvider == null) { ModeProvider = DependencyResolver.Current.GetService <IModeProvider>(); } var result = html.DisplayFor(expression); if (ModeProvider.GetIsPageEditing(html.ViewContext.HttpContext) != true) { return(result); } if (ObjectIdentifier == null) { ObjectIdentifier = DependencyResolver.Current.GetService <IObjectIdentifier>(); } if (PropertyExpressionMetaDataProvider == null) { PropertyExpressionMetaDataProvider = DependencyResolver.Current.GetService <IPropertyExpressionMetaDataProvider>(); } var metaData = PropertyExpressionMetaDataProvider.GetFor(expression); return(MvcHtmlString.Create($"<span class=\"poetry-page-editing-property\" property-name=\"{metaData.PropertyName}\" object-id=\"{ObjectIdentifier.GetId(metaData.OwnerObject ?? html.ViewData.Model)}\">{result}</span>")); }
public static MvcHtmlString AddPageEditing(this HtmlHelper html) { if (ModeProvider == null) { ModeProvider = DependencyResolver.Current.GetService<IModeProvider>(); } if (ModeProvider.GetIsPageEditing(html.ViewContext.HttpContext) != true) { return null; } if(AddPageEditingHtmlGenerator == null) { AddPageEditingHtmlGenerator = DependencyResolver.Current.GetService<IAddPageEditingHtmlGenerator>(); } return MvcHtmlString.Create(AddPageEditingHtmlGenerator.GenerateHtml()); }
public static MvcHtmlString AddPageEditing(this HtmlHelper html) { if (ModeProvider == null) { ModeProvider = DependencyResolver.Current.GetService <IModeProvider>(); } if (ModeProvider.GetIsPageEditing(html.ViewContext.HttpContext) != true) { return(null); } if (BasePathProvider == null) { BasePathProvider = DependencyResolver.Current.GetService <IBasePathProvider>(); } return(MvcHtmlString.Create($"<script src=\"/{BasePathProvider.BasePath}/PageEditing/Scripts/target-page-editor.js\" async></script>")); }
void Context_BeginRequest(object sender, EventArgs e) { if (PrefixProvider == null) { PrefixProvider = DependencyResolver.Current.GetService <IPathPrefixProvider>(); } if (ModeProvider == null) { ModeProvider = DependencyResolver.Current.GetService <IModeProvider>(); } var context = ((HttpApplication)sender).Context; if (!context.Request.Path.StartsWith(PrefixProvider.Prefix, StringComparison.InvariantCultureIgnoreCase)) { return; } ModeProvider.SetIsPageEditing(context, true); context.RewritePath("/" + context.Request.Path.Substring(PrefixProvider.Prefix.Length)); }
public static MvcHtmlString PropertyFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression) { if(ModeProvider == null) { ModeProvider = DependencyResolver.Current.GetService<IModeProvider>(); } var result = html.DisplayFor(expression); if(ModeProvider.GetIsPageEditing(html.ViewContext.HttpContext) != true) { return result; } if (PropertyForHtmlGenerator == null) { PropertyForHtmlGenerator = DependencyResolver.Current.GetService<IPropertyForHtmlGenerator>(); } return new MvcHtmlString(PropertyForHtmlGenerator.GenerateHtml(html.ViewData.Model, expression, result.ToString())); }