Telerik Forums
UI for ASP.NET Core Forum
0 answers
20 views

Hello everyone,

Here are the highlights of the new online resources we published this week from 10 Nov 2025 to 17 Nov 2025:

Article: https://www.telerik.com/aspnet-core-ui/documentation/ai-components-and-features
Summary: This article documents the AI Prompt and AI Chat components in Telerik UI for ASP.NET Core and shows you how to configure Tag/HTML Helpers and connect them to OpenAI or Azure OpenAI through ASP.NET Core endpoints. It covers setup, provider configuration, client/server APIs, streaming responses, attachments, context and message history, and content safety basics to help you implement AI features in your application.

Article: https://www.telerik.com/aspnet-core-ui/documentation/html-helpers/diagrams-and-maps/diagram/binding
Summary: You will bind the Telerik ASP.NET Core Diagram HTML Helper to your data so shapes and connections are generated from your schema. Configure DataSource and ConnectionsDataSource with model field mappings (Id, Text, X/Y for shape position; From/To for connections) and transport actions for server-side CRUD. The examples show remote binding, positioning, and handling data-bound events.

Article: https://www.telerik.com/aspnet-core-ui/documentation/html-helpers/diagrams-and-maps/diagram/razor-pages
Summary: This article shows how to use the ASP.NET Core Diagram HtmlHelper in Razor Pages: configure separate DataSources for shapes and connections with AJAX transport to page handlers (via Url.Page), map model fields (Id, From, To), and include the required Kendo UI scripts and styles. It provides .cshtml and PageModel code for Read, Create, Update, and Destroy operations and demonstrates adding anti-forgery tokens to the requests.

Feel free to check them out and share your thoughts!

The Telerik Team

Atanas
Telerik team
 updated question on 17 Nov 2025
0 answers
557 views

In our UI for ASP.NET Core R3 2020 (2020.3.915) release, the Column menu message of unsticking a column is "null".

This bug will be resolved in our next official release.

In the meantime, as a workaround, manually set the Unstick Column menu message:

.ColumnMenu(c => c.Messages(m => m.Unstick("Unstick Column")))
Kendo UI
Top achievements
Rank 1
 asked on 16 Sep 2020
0 answers
7 views

I am converting a MVC table grid to a Telerik Grid. While looking at it, there are conditional columns. For example: 

 


@if (Model?.GroupDetail?.IsMec == false)
                                    {
                                        <th class="text-secondary" style="width: 140px;">Group Info</th>
                                    }

<th class="text-secondary">
                                        @if (Model?.GroupDetail?.IsMec == false)
                                        {
                                            <text>Office</text>
                                        }
                                        else
                                        {
                                            <text>Role</text>
                                        }
                                    </th>
How would I go about recreating something like this for the grid 
Charlston
Top achievements
Rank 1
 asked on 19 Nov 2025
0 answers
8 views

I'm attempting to use the Kendo Upload control asynchronously to an MVC controller, which passes the file to a WebApi controller.  The file is uploaded successfully, however when it returns to the MVC view, it reports that the file failed to upload with the error below.  We are using Azure B2C for authentication:

"Access to XMLHttpRequest at 'https... b2clogin.com...' (redirected from 'https//localhost:7074/Files/UploadFile') from origin 'https://localhost:7074' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource."

Server response:

"Failed to load resource: net::ERR_FAILED"

The control is located in a partial view as part of a tab control on a CSHTML view.  Here is the code for the upload control:

<div class="row">
    <div class="col-md-8">
        @(Html.Kendo().Upload()
                .Name("uploadedFile")
            .Multiple(false)
            .Validation(v =>
            {
                v.AllowedExtensions(new string[] { ".csv" });
                v.MaxFileSize(3145728);
            })
            .Async(a => a
                .AutoUpload(false)
                .Save("UploadFile", "Files")
            )
            .Events(e =>
            {
    e.Upload("onFileUpload");
            })

         )
    </div>
    <div class="col-md-4">
    </div>

</div>

Here is the C# code for the MVC controller:

        [HttpPost]
        public async Task<ActionResult> UploadFile(IFormFile uploadedFile, string month, string year)
        {
            if (uploadedFile == null || uploadedFile.Length == 0)
                return BadRequest("No file uploaded.");

            var reportingPeriod = month + year;

            using (var content = new MultipartFormDataContent())
            {
                if (uploadedFile.Length > 0)
                {
                    var streamContent = new StreamContent(uploadedFile.OpenReadStream());
                    streamContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(uploadedFile.ContentType);
                    content.Add(streamContent, "file", uploadedFile.FileName);
                }

                using (var response = await _client.HttpClient.PostAsync("/api/Files/loadbackdatedmonthlytrueupfile/" + reportingPeriod, content))
                {
                    if (response.IsSuccessStatusCode)
                    {
                        // Kendo expects an empty string for success
                        return Content("");
                    }
                    else
                    {
                        return StatusCode((int)response.StatusCode, await response.Content.ReadAsStringAsync());
                    }

                }

            }
        }

 

Here is the code for the WebApi controller:

[HttpPost("loadbackdatedmonthlytrueupfile/{reportingPeriod}")]
public async Task<IActionResult> LoadBackdatedMonthlyTrueUpFile([FromForm] IFormFile file, string reportingPeriod)

{

     //other logic here

     return Ok(new { file.FileName, file.Length });

}

This is the info I received from Copilot:

This error is caused by trying to call the Azure AD B2C /authorize endpoint using an XMLHttpRequest (AJAX/fetch) from your frontend (https://localhost:7074). Azure AD B2C does not support CORS for this endpoint, so the browser blocks the request.
Root cause:
The /authorize endpoint is designed for browser redirects, not AJAX/fetch/XHR.
No CORS headers will ever be present on this endpoint, so preflight requests will always fail.
How to fix:
Never use AJAX/fetch/XHR to call the /authorize endpoint.
Always use a full-page redirect for authentication.
For example, set window.location.href to the login URL, or let the [Authorize] attribute and OIDC middleware handle it for you.

How can I configure this upload control to return to the view without the error (attaching screenshot)?

Wendy
Top achievements
Rank 1
 asked on 17 Nov 2025
0 answers
25 views

It was my understanding that the Kendo editor is only designed to work with the content between the <body></body> tags and strip off <html>, <head>, and the <body> tags themselves but while I do see that those tags are indeed left out in the dialog editor a <meta> tag that I have in my <head></head> section is still being rendered (ref attached screenshot) which is not desired to the extent that I wish to re-apply the standard "format" to the saved body content changes that re-applies the standard prefix/suffix tags we use to define HTML formatted email templates (Ref below) where the {0} placeholder would represent the true editor content changes for the email template being posted back from client to be saved. However while this works I'm getting the original <meta> tag as part of the "content" when my expectation is, that because it is embedded in the <head> tag that it would get stripped out when the <body></body> internal content is rendered on the client.  I am currently using the 2025.1.227 build of Telerik UI for ASP.NET Core.


private const string EmailTemplateFormat = "<html><head><meta content=\"text/html; charset=windows-1252\" /></head><body style=\"padding: 0; margin: 0;\">{0}</body></html>";

Michael
Top achievements
Rank 2
Iron
Iron
Iron
 asked on 11 Aug 2025
0 answers
21 views
please disregard this post
Gerardo
Top achievements
Rank 1
Iron
 updated question on 12 Jul 2025
0 answers
34 views

Some PDF files are showing the following error during the watermark merging process. Please find the error below and kindly advise.


Error:

  at Telerik.Windows.Documents.Utilities.Guard.ThrowExceptionIfNull[T](T param, String paramName)     at Telerik.Windows.Documents.Fixed.Model.RadFixedDocument.Merge(RadFixedDocument source)     at FinalPdfGenerator.CommitteePdfGeneratorService.CreateClonedDocument(RadFixedDocument document, RadFixedDocument existingDocument, Notes note) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 129
   at FinalPdfGenerator.CommitteePdfGeneratorService.GenerateFirstPage(Notes e_Note) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 215
   at System.Linq.Enumerable.Select[TSource,TResult](IEnumerable`1 source, Func`2 selector)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Operators.Text.ShowText.Execute(IContentStreamInterpreter interpreter, IPdfContentImportContext context, PdfString text)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Operators.Text.ShowTextArray.Execute(IContentStreamInterpreter interpreter, IPdfContentImportContext context)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.InterpreterBase`1.<>c__DisplayClass8_0.<Execute>b__0()     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation, Action`1 onException)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.InterpreterBase`1.Execute()     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.ContentStream.ParseContentData(Byte[] data, IRadFixedDocumentImportContext context, IResourceHolder resourceHolder, IContentRootElement contentRoot, ContentStreamKeywordCollection keywordCollection)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.Page.CopyPageContentTo(IRadFixedDocumentImportContext context, RadFixedPage fixedPage)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyAllPageProperties(PostScriptReader reader, IRadFixedDocumentImportContext context, List`1 contextPages, IList`1 pages)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyPagePropertiesTo(PostScriptReader reader, IRadFixedDocumentImportContext context)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyPropertiesTo(PostScriptReader reader, IRadFixedDocumentImportContext context)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.RadFixedDocumentImportContext.BeginImportOverride()     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.BaseImportContext.BeginImport(Stream pdfFileStream)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.PdfImporter.Import(Stream input, IPdfImportContext context)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.<>c__DisplayClass18_0.<ImportOverride>b__0()     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.ImportOverride(Stream input)     at Telerik.Windows.Documents.Common.FormatProviders.FormatProviderBase`1.Import(Stream input)     at FinalPdfGenerator.CommitteePdfGeneratorService.LoadExistingDocument(String file) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 727
   at FinalPdfGenerator.CommitteePdfGeneratorService.GenerateFirstPage(Notes e_Note) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 215
   at Telerik.Windows.Documents.Utilities.Guard.ThrowExceptionIfNull[T](T param, String paramName)     at Telerik.Windows.Documents.Fixed.Model.RadFixedDocument.Merge(RadFixedDocument source)     at FinalPdfGenerator.CommitteePdfGeneratorService.CreateClonedDocument(RadFixedDocument document, RadFixedDocument existingDocument, Notes note) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 129
   at System.Runtime.CompilerServices.RuntimeHelpers.AllocateUninitializedClone(Object obj)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.SimpleFontObject.GetToUnicodeOverride(CharCode code)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.FontObject.GetCharactersOverride(PdfString str)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Operators.Text.ShowText.Execute(IContentStreamInterpreter interpreter, IPdfContentImportContext context, PdfString text)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Operators.Text.ShowTextArray.Execute(IContentStreamInterpreter interpreter, IPdfContentImportContext context)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.InterpreterBase`1.<>c__DisplayClass8_0.<Execute>b__0()     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation, Action`1 onException)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.InterpreterBase`1.Execute()     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.ContentStream.ParseContentData(Byte[] data, IRadFixedDocumentImportContext context, IResourceHolder resourceHolder, IContentRootElement contentRoot, ContentStreamKeywordCollection keywordCollection)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.Page.CopyPageContentTo(IRadFixedDocumentImportContext context, RadFixedPage fixedPage)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyAllPageProperties(PostScriptReader reader, IRadFixedDocumentImportContext context, List`1 contextPages, IList`1 pages)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyPagePropertiesTo(PostScriptReader reader, IRadFixedDocumentImportContext context)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyPropertiesTo(PostScriptReader reader, IRadFixedDocumentImportContext context)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.RadFixedDocumentImportContext.BeginImportOverride()     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.BaseImportContext.BeginImport(Stream pdfFileStream)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.PdfImporter.Import(Stream input, IPdfImportContext context)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.<>c__DisplayClass18_0.<ImportOverride>b__0()     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation)     at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.ImportOverride(Stream input)     at Telerik.Windows.Documents.Common.FormatProviders.FormatProviderBase`1.Import(Stream input)     at FinalPdfGenerator.CommitteePdfGeneratorService.LoadExistingDocument(String file) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 727

Code:

private RadFixedDocument CreateClonedDocument(RadFixedDocument document, RadFixedDocument existingDocument, Model.Notes note)
{
    RadFixedDocument clonedDocument = new RadFixedDocument();
    try
    {
        foreach (RadFixedPage currentPage in existingDocument.Pages)
        {
            Watermark(currentPage, note.strNoteStatus, 0, 0, FirstVal);
            Watermark(currentPage, note.noteNumber, 0, 65, SecVal);
        }

        clonedDocument.Merge(GenerateFirstPage(note));
        clonedDocument.Merge(existingDocument);
        clonedDocument.Merge(GenerateSignaturePage((int)note.noteId));
        clonedDocument.Merge(CommentAuditLogPage((int)note.noteId));

        int pageNumber = 0;
        foreach (RadFixedPage currentPage in clonedDocument.Pages)
        {
            pageNumber++;
            Footer(currentPage, pageNumber, clonedDocument.Pages.Count);
        }
    }
    catch (Exception ex) {
        AddLogs(_dbContext, "ECommittee Pdf Genarator", ex.StackTrace, ex.InnerException?.ToString());
    }
    return clonedDocument;
}

 

Ilangovan
Top achievements
Rank 1
 asked on 19 Jun 2025
0 answers
40 views

Hi, I copied the gantt chart demo from the link below. I do not receive any errors but nothing shows in the timeline. Any idea what I am doing wrong? thank you 

 

ui-for-aspnet-core-examples/Telerik.Examples.RazorPages/Telerik.Examples.RazorPages/Pages/Gantt/GanttIndex.cshtml at master · telerik/ui-for-aspnet-core-examples · GitHub

superBren
Top achievements
Rank 1
 asked on 02 Apr 2025
0 answers
69 views

How do use the Loader as a Loading Container so it covers the whole UI with a transparent overlay 

 

@(Html.Kendo().Loader()
    .Name("loader")
    .Size(LoaderSize.Large)
    .Type(LoaderType.ConvergingSpinner)
    )
 
Andrew
Top achievements
Rank 1
Veteran
Iron
 updated question on 28 Mar 2025
0 answers
42 views

Hi support team,

 

sadly, we ran out of support so I'll try the forum for help.

 

We have bound column

 


   columns.Bound(c => c.BusinessPartner.Name).Title("Customer").Groupable(true)
       .Filterable(f => f.Multi(false).Search(true).Cell(c => c.ShowOperators(false).Operator("startswith"))).Width(250)
       .ClientTemplate(@"
           #= data.BusinessPartner.Number # #= data.BusinessPartner.Name #
           #if (data.BusinessPartner.PostalAddress != null) {#
               <span class='d-flex'> (#= data.BusinessPartner.PostalAddress.City #)</span>
           #}#");

 

From now on the filter using "startswith" is broken. Let me explain. Yesterday when entering "e" it displays all customers starting with "e". But suddenly some customers are not shown any more. Yesterday the list contained two entries and today only 1 entry any more.

I examined the SQL query behind the scenes but this is ok.

What could be wrong here?

Stefan
Top achievements
Rank 1
Iron
Iron
Iron
 asked on 25 Feb 2025
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?