C# 更新blazor版本3.0100后,获取Microsoft.JSInterop.Infrastructure.DotNetDispatcher.ParseArguments中的参数时出错
在将我的blazor项目从.net preview 7升级到.net core 3.0.100版本后,我发现sycfusion grid control中的错误如下,我已经更新了所有最新的软件包。另外,通过参考C# 更新blazor版本3.0100后,获取Microsoft.JSInterop.Infrastructure.DotNetDispatcher.ParseArguments中的参数时出错,c#,blazor,syncfusion,blazor-server-side,blazor-client-side,C#,Blazor,Syncfusion,Blazor Server Side,Blazor Client Side,在将我的blazor项目从.net preview 7升级到.net core 3.0.100版本后,我发现sycfusion grid control中的错误如下,我已经更新了所有最新的软件包。另外,通过参考 `blazor.server.js:8未捕获(承诺中)错误:System.ArgumentException:调用'UpdateTemplate'需要'5'个参数,但收到'4'。在 Microsoft.JSInterop.Infrastructure.DotNetDispatcher.
`blazor.server.js:8未捕获(承诺中)错误:System.ArgumentException:调用'UpdateTemplate'需要'5'个参数,但收到'4'。在
Microsoft.JSInterop.Infrastructure.DotNetDispatcher.ParseArguments(JSRuntime JSRuntime,String methodIdentifier,String arguments,Type[]parameterTypes)
在Microsoft.JSInterop.Infrastructure.DotNetDispatcher.InvokeSynchronously(JSRuntime-JSRuntime,DotNetInvocationInfo&callInfo,IDotNetObjectReference-objectReference,字符串argsJson)
位于Microsoft.JSInterop.Infrastructure.DotNetDispatcher.BeginInvokeDotNet(JSRuntime JSRuntime,DotNetInvocationInfo invocationInfo,字符串argsJson)
在Object.endInvokeDotNetFromJS(blazor.server.js:8)处
在e。(blazor.server.js:8)
在blazor.server.js:1
在Array.forEach()处
在e.invokeClientMethod(blazor.server.js:1)中
在e.processIncomingData(blazor.server.js:1)
在e.connection.onreceive(blazor.server.js:1)
在WebSocket.i.onmessage(blazor.server.js:1)
endInvokeDotNetFromJS@blazor.server.js:8
(匿名)@blazor.server.js:8
(匿名)@blazor.server.js:1
e、 invokeClientMethod@blazor.server.js:1
e、 processIncomingData@blazor.server.js:1
connection.onreceive@blazor.server.js:1
i、 onmessage@blazor.server.js:1
@{
var project=(上下文为ProjectTable);
@project.ProjectName
@project.ClientName
@项目.现状
@project.NextStep
@project.DueDate
}
`
我猜Nuget(Syncusion.EJ2.Blazor
)和ejs.interop.min.js
文件之间存在版本不匹配。请确保使用相同版本的脚本文件来解决此错误
例如,如果您使用的是Nuget v17.3.17,那么应该从下面的CDN引用脚本文件
参考:感谢您在Syncusion.EJ2.Blazor中提供solutionBTW@Madhu。Blazor已将正确的互操作作为Blazor静态资产嵌入其中。然而,由于某些原因,与其他Razor组件库不同,它不能通过使用
\u content/Syncfusion.EJ2.Blazor/ejs.interop.min.js来包含,您知道为什么吗?
`blazor.server.js:8 Uncaught (in promise) Error: System.ArgumentException: The call to 'UpdateTemplate' expects '5' parameters, but received '4'. at
Microsoft.JSInterop.Infrastructure.DotNetDispatcher.ParseArguments(JSRuntime jsRuntime, String methodIdentifier, String arguments, Type[] parameterTypes)
at Microsoft.JSInterop.Infrastructure.DotNetDispatcher.InvokeSynchronously(JSRuntime jsRuntime, DotNetInvocationInfo& callInfo, IDotNetObjectReference objectReference, String argsJson)
at Microsoft.JSInterop.Infrastructure.DotNetDispatcher.BeginInvokeDotNet(JSRuntime jsRuntime, DotNetInvocationInfo invocationInfo, String argsJson)
at Object.endInvokeDotNetFromJS (blazor.server.js:8)
at e.<anonymous> (blazor.server.js:8)
at blazor.server.js:1
at Array.forEach (<anonymous>)
at e.invokeClientMethod (blazor.server.js:1)
at e.processIncomingData (blazor.server.js:1)
at e.connection.onreceive (blazor.server.js:1)
at WebSocket.i.onmessage (blazor.server.js:1)
endInvokeDotNetFromJS @ blazor.server.js:8
(anonymous) @ blazor.server.js:8
(anonymous) @ blazor.server.js:1
e.invokeClientMethod @ blazor.server.js:1
e.processIncomingData @ blazor.server.js:1
connection.onreceive @ blazor.server.js:1
i.onmessage @ blazor.server.js:1
<EjsGrid ID="gdProjects" @ref="gdProjects" ModelType="@model" DataSource="@filteredProjects" AllowReordering="true" AllowFiltering="true" AllowPaging="true" AllowMultiSorting="false" AllowSorting="true" AllowExcelExport="true" AllowPdfExport="true" Toolbar="@(new List<string>() { "Search" })">
<GridFilterSettings Type="@Syncfusion.EJ2.Blazor.Grids.FilterType.Menu"></GridFilterSettings>
<GridPageSettings PageCount="10" PageSizes="true"></GridPageSettings>
<GridColumns>
<GridTemplates>
<RowTemplate>
@{
var project = (context as ProjectTable);
<td class="data-cell pointer" @onclick="(()=>OnProjectClick(project.ProjectId))">
@project.ProjectName
</td>
<td class="data-cell pointer" @onclick="(()=>OnClientClick(project.ClientId))">
@project.ClientName
</td>
<td class="data-cell">
@project.Status
</td>
<td class="data-cell">
@project.NextStep
</td>
<td class="data-cell">
@project.DueDate
</td>
}
</RowTemplate>
</GridTemplates>
<GridColumn Field=@nameof(ProjectTable.ProjectName) HeaderText="Project Name" />
<GridColumn Field=@nameof(ProjectTable.ClientName) HeaderText="Client Name" />
<GridColumn Field=@nameof(ProjectTable.Status) HeaderText="Status" />
<GridColumn Field=@nameof(ProjectTable.NextStep) HeaderText="Next Step" />
<GridColumn Field=@nameof(ProjectTable.DueDate) HeaderText="Due Date" />
</GridColumns>
</EjsGrid>`