Beispiel #1
0
        /// <summary>
        /// In a Razor layoutpage, renders the generated mvvm model.
        /// </summary>
        /// <returns>The mvvm model.</returns>
        public static IHtmlContent RenderDataModel(this RazorPage razorPage)
        {
            var modelname = "model";

            var helper    = FWDataModelResolverHelper.Serialize(razorPage.ViewContext);
            var viewmodel = helper.ToScript(modelname);

            if (!string.IsNullOrWhiteSpace(viewmodel))
            {
                return(new HtmlString($"<script>{viewmodel} fw.bind.add('{modelname}', fw.{modelname}, document.querySelectorAll('[data-type=\"content\"]')[0]);</script>"));
            }
            return(new HtmlString(string.Empty));
        }
Beispiel #2
0
        /// <summary>
        /// Creates the mvvm databind. Should only be called from partial views.
        /// </summary>
        /// <param name="htmlHelper">The IHtmlHelper.</param>
        /// <returns>The MVVM model binding.</returns>
        public static IHtmlContent Datamodel(this IHtmlHelper htmlHelper)
        {
            var modelname = htmlHelper.ViewData.ModelMetadata.UnderlyingOrModelType.Name;

            var id = Guid.NewGuid();

            var helper    = FWDataModelResolverHelper.Serialize(htmlHelper.ViewContext);
            var viewmodel = helper.ToScript(modelname);

            if (!string.IsNullOrWhiteSpace(viewmodel))
            {
                return(new HtmlString($"<div id=\"{id}\"></div><script>{viewmodel} fw.bind.add('{modelname}', fw.{modelname}, $('#{id}').closest('[data-type=\"body\"]')[0]);</script>"));
            }
            return(new HtmlString(string.Empty));
        }