### Bug report
When the TreeList is set up for Popup editing, the "required" validation triggers immediately when the Popup form is opened.
### Reproduction of the problem
1) Create a Popup editable TreeList.
2) Add the DataAnnotation [Required] attribute to any of the Model properties.
3) Click the built-in "Add new record" command.
4) The editor of the required field is automatically focused and the validation triggers immediately.
The behavior can be observed in the TreeList Popup Editing demo: https://demos.telerik.com/aspnet-core/treelist/editing-popup
### Expected/desired behavior
The validation must trigger on blur, as in the jQuery demo.
### Environment
* **Telerik UI for ASP.NET Core version: 2025.2.520
* **Browser: [all]
Consider the use of TextWriter async methods for the HTML Helpers, for example the WriteInitializationScript methods. In certain scenarios the use of the synchronous methods causes an exception: System.InvalidOperationException: Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true instead.
This can be resolved by explicitly enabling synchronous operations
services.Configure<IISServerOptions>(options =>
{
options.AllowSynchronousIO = true;
});
though synchronous operations have been disabled by default at framework level as of .NET 3.0.
### Bug report
When dragging and dropping a file into a specified FileManager folder, the Upload request triggers twice.
### Reproduction of the problem
1. Open the FileManager Demo: https://demos.telerik.com/kendo-ui/filemanager/index
2. Open the browser's Network tab.
3. Drag and drop a file into the FileManager.
4. Two Upload requests are triggered one after another.
### Expected/desired behavior
When uploading a single file with drag & drop, a single Upload request must trigger. When using the default upload button to upload a file, a single request triggers as expected.
### Environment
* **Kendo UI version: 2024.4.1112
* **jQuery version: 3.7.1
* **Browser: [all]
Currently, the Content function for Steps in a Wizard only accepts a string value (see API here).
This means that in order to add a partial view (bound to the current model and its properties), the most straightforward way I could find was to put the partial view (and any wrappers) in its own file and add an extension method "ToHtmlString()". For example:
@model MyModel
@(Html.Kendo().Wizard().Steps(step => {
step.Add().Content(Html.Partial("~/Path/To/View/Wrapper.cshtml", Model).ToHtmlString());
})
using Microsoft.AspNetCore.Html;
using System.IO;
public static class HtmlContentExtensions
{
public static string ToHtmlString(this IHtmlContent htmlContent)
{
if (htmlContent is HtmlString htmlString)
{
return htmlString.Value;
}
using StringWriter writer = new();
htmlContent.WriteTo(writer, System.Text.Encodings.Web.HtmlEncoder.Default);
return writer.ToString();
}
}
@model MyModel
@(Html.Kendo().TabStrip().Items(tabstrip => {
tabstrip.Add()
.Content(@<div id="@Model.TabContainer" class="myTabWrapperClass">
@await Html.PartialAsync("~/Path/To/View.cshtml", Model)
</div>);
})