如何从ASP.NET Core MVC视图向Blazor组件传递数据?
从ASP.NET Core MVC视图向Blazor组件传递数据的正确实现
问题修正要点
你当前代码的核心问题是MVC视图向Blazor组件传递参数的语法错误,需要使用ASP.NET Core规定的参数绑定格式。
修正后的代码实现
MVC视图(.cshtml)
@{ ViewData["Title"] = "Home Page"; var data = "testData"; } <component type="typeof(mvcTestBlazor.Components.Counter)" render-mode="Server" param-Data="@data" />
Blazor组件(Counter.razor)
<!-- 可选:添加显示逻辑验证数据接收状态 --> <p>从MVC视图接收的数据:@Data</p> @code { [Parameter] public string Data { get; set; } }
关键说明
- 在MVC视图的
<component>标签中,必须通过param-{参数名}的格式传递Blazor组件参数,比如param-Data="@data",这样才能将视图中的data变量值绑定到组件的Data参数上。直接写Data="data"只会传递字符串字面量"data",而非变量值。 - 确保项目已正确配置Blazor Server依赖:在
Program.cs中添加builder.Services.AddServerSideBlazor();,并注册Blazor Hub:app.MapBlazorHub();。
内容的提问来源于stack exchange,提问作者Jalal Malekpour
相关产品推荐
相关产品推荐

