Exemplo n.º 1
0
 public async Task WriteViewModelResponse(IDotvvmRequestContext context, DotvvmView view)
 {
     // return the response
     context.HttpContext.Response.ContentType = "application/json; charset=utf-8";
     SetCacheHeaders(context.HttpContext);
     var serializedViewModel = context.GetSerializedViewModel();
     await context.HttpContext.Response.WriteAsync(serializedViewModel);
 }
Exemplo n.º 2
0
 public override Task WriteViewModelResponse(IDotvvmRequestContext context, DotvvmView view)
 {
     if (context.Configuration.Debug && context.Services.GetService <DiagnosticsRequestTracer>() is DiagnosticsRequestTracer tracer)
     {
         var viewModelJson = context.GetSerializedViewModel();
         var vmBytes       = Encoding.UTF8.GetBytes(viewModelJson);
         tracer.LogResponseSize(GetCompressedSize(vmBytes), vmBytes.LongLength);
     }
     return(base.WriteViewModelResponse(context, view));
 }
Exemplo n.º 3
0
        protected override void RenderControl(IHtmlWriter writer, IDotvvmRequestContext context)
        {
            // render resource links
            var resourceManager = context.ResourceManager;
            if (resourceManager.BodyRendered) return;
            resourceManager.BodyRendered = true;  // set the flag before the resources are rendered, so they can't add more resources to the list during the render
            ResourcesRenderer.RenderResources(resourceManager, writer, context, ResourceRenderPosition.Body);

            // render the serialized viewmodel
            var serializedViewModel = context.GetSerializedViewModel();
            writer.AddAttribute("type", "hidden");
            writer.AddAttribute("id", "__dot_viewmodel_root");
            writer.AddAttribute("value", serializedViewModel);
            writer.RenderSelfClosingTag("input");

            // init on load
            writer.RenderBeginTag("script");
            writer.WriteUnencodedText($@"
window.dotvvm.domUtils.onDocumentReady(function () {{
    window.dotvvm.init('root', {JsonConvert.ToString(CultureInfo.CurrentCulture.Name, '"', StringEscapeHandling.EscapeHtml)});
}});");
            writer.WriteUnencodedText(RenderWarnings(context));
            writer.RenderEndTag();
        }