New to Telerik UI for ASP.NET MVCStart a free 30-day trial

ASP.NET MVC Reasoning

Updated on Aug 11, 2026

When users interact with AI agents, much of the process remains hidden: the model works through a problem, but nothing appears until the response arrives.

The Reasoning component reveals the model's internal thinking trace in real time through a collapsible disclosure block, confirming that work is underway and giving power users the transparency needed to trust the output.

Configuration

Bind Content to the model's thinking trace and send incremental token updates as the stream arrives. This lets users watch the model reason in real time.

Use Label to describe the current activity and SecondaryLabel to display elapsed time after the model finishes. Changing between "Thinking" and "Thought" with elapsed time immediately shows whether work is still underway. Pair Icon or SvgIcon with your application's design language to make the header easy to recognize.

Razor
    @(Html.Kendo().Reasoning()
        .Name("reasoning")
        .Label("Thinking")
        .Expandable(true)
        .Expanded(true)
        .Content("Identifying the correct data source and validating filters.")
    )

Set Completed to true when the stream ends so the header changes from its in-progress spinner to a completed state, indicating that the trace is finished and the answer is ready.

Expanded State

The expanded state shows the complete reasoning trace, helping users follow the model's thought process step by step. After reviewing the reasoning, users can collapse the block to hide its details.

Leave Expandable enabled so users who do not need the trace can collapse it without losing context. Use Expanded to control whether the block opens while the model works, and respond to user-driven changes with the Expand, Collapse, or Toggle methods.

Razor
    @(Html.Kendo().Reasoning()
        .Name("reasoning")
        .Label("Thought")
        .SecondaryLabel("for 1.5s")
        .Completed(true)
        .Expandable(true)
        .Expanded(false)
        .Content("Identifying the correct data source and validating filters.")
    )

See Also