Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Søren Kottal 530 posts 3521 karma points MVP 2x c-trib
    Oct 07, 2016 @ 13:54
    Søren Kottal
    0

    Doc Type Grid Editor and Models Builder

    Has anyone had any luck getting Doc Type Grid Editor to work with Models Builder?

    When I render my page I get this stack trace:

    Umbraco.Web.Mvc.ModelBindingException: Cannot bind source content type Our.Umbraco.DocTypeGridEditor.Models.DetachedPublishedContent to model type Umbraco.Web.PublishedContentModels.DtgeLinkGrid.
       at Umbraco.Web.Mvc.RenderModelBinder.ThrowModelBindingException(Boolean sourceContent, Boolean modelContent, Type sourceType, Type modelType)
       at Umbraco.Web.Mvc.RenderModelBinder.BindModel(Object source, Type modelType, CultureInfo culture)
       at Umbraco.Web.Mvc.UmbracoViewPage`1.SetViewData(ViewDataDictionary viewData)
       at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
       at Umbraco.Core.Profiling.ProfilingView.Render(ViewContext viewContext, TextWriter writer)
       at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
       at Our.Umbraco.DocTypeGridEditor.Web.Extensions.HtmlHelperExtensions.RenderDocTypeGridEditorItem(HtmlHelper helper, IPublishedContent content, String editorAlias, String viewPath, String previewViewPath)
       at ASP._Page_app_plugins_doctypegrideditor_render_doctypegrideditor_cshtml.Execute() in c:\Workspaces\Web\App_Plugins\DocTypeGridEditor\Render\DocTypeGridEditor.cshtml:line 28
       at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
       at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
       at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
       at Umbraco.Core.Profiling.ProfilingView.Render(ViewContext viewContext, TextWriter writer)
       at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
       at ASP._Page_Views_Partials_grid_editors_base_cshtml.Execute() in c:\Workspaces\Web\Views\Partials\Grid\Editors\Base.cshtml:line 20
    

    I saw some quick fixes at https://github.com/umco/umbraco-doc-type-grid-editor/issues/44 but I can't seem to get them working.

    My view:

    @inherits UmbracoViewPage<IPublishedContent>
    @if (Model != null)
    {
        // cast model as the correct ContentModel
        var model = new DtgeLinkGrid(Model);
    }
    
  • Frans de Jong 522 posts 1762 karma points c-trib
    Jan 24, 2017 @ 08:18
    Frans de Jong
    0

    What I did now as a workaround:

    @inherits Umbraco.Web.Mvc.UmbracoViewPage
    
    @{
       var viewModel = null;
       if(Model != null){
           var viewModel = new DTGEModel(Model);
       }
    }
    

    Since the constructor of the modelsbuilder modal needs IPublishedContent and the Model of DTGE is IPublishedContent it works lika a charm.

  • z4kk 24 posts 81 karma points
    Apr 20, 2017 @ 13:18
    z4kk
    1

    My workaround generic class:

    public class GridViewPage<T> : UmbracoViewPage<IPublishedContent>
            where T : IPublishedContent
        {
            private T _model;
            protected new T Model => _model != null ? _model : (_model = (T) Activator.CreateInstance(typeof(T), base.Model));
    
            public override void Execute()
            {
            }
        }
    

    In partial view:

    @inherits GridViewPage<TextWithHeaderBlock>
    
    <h3>@Model.Header</h3>
    
    <p>@Model.Text</p>
    
  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies