You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让MVC中参数类型在类库的WASM Razor组件正常运行?

解决Blazor WASM在MVC中引用共享类库类型的参数解析错误

核心问题原因

服务器预渲染阶段能正常运行是因为MVC项目引用了共享类库,但浏览器端的Blazor WASM运行时未加载该共享类库的程序集,导致反序列化组件参数时无法识别TestModel2类型,从而抛出找不到参数类型的异常。

解决方案步骤

1. 给Blazor WASM项目添加共享类库引用

右键Blazor WASM项目(MvcWithBlazorTest.Blazor),选择添加 -> 项目引用,勾选MvcWithBlazorTest.Shared类库,确保WASM运行时能访问到模型类型。

2. 确保模型类支持JSON序列化

修改共享类库中的TestModel2,添加无参构造函数(JSON序列化的必要条件):

namespace MvcWithBlazorTest.Shared;

public class TestModel2
{
    // 新增无参构造函数
    public TestModel2() { }

    public string Message { get; set; }
}

3. 重新构建并验证

  • 清理解决方案,重新构建所有项目
  • 运行MVC项目,浏览器控制台不再出现参数类型找不到的错误,组件可正常加载并交互

补充说明

当使用WebAssemblyPrerendered渲染模式时,服务器会先预渲染组件并将参数序列化为JSON,浏览器端WASM启动时需要反序列化这些参数。只有当WASM项目能访问到参数对应的类型程序集时,反序列化才能成功完成。

内容的提问来源于stack exchange,提问作者elexis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:01:23