【问题标题】:Getting error in arguments in Microsoft.JSInterop.Infrastructure.DotNetDispatcher.ParseArguments after update blazor version 3.0100更新 blazor 版本 3.0100 后,Microsoft.JSInterop.Infrastructure.DotNetDispatcher.ParseArguments 中的参数出现错误
【发布时间】:2019-10-16 10:17:27
【问题描述】:

在将我的 blazor 项目从 .net preview 7 升级到 .net core 3.0.100 版本后,我在 sycfusion 网格控制中遇到错误,我更新了所有最新的包。还通过参考以下内容更新语法更改 https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0-preview-9/

`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>`

【问题讨论】:

    标签: c# blazor syncfusion blazor-server-side blazor-client-side


    【解决方案1】:

    我猜 Nuget(Syncusion.EJ2.Blazor) 和 ejs.interop.min.js 文件之间存在版本不匹配。请确保使用相同版本的脚本文件来解决此错误。

    例如,如果您使用的是 Nuget v17.3.17,则脚本文件应从以下 CDN 引用。

    &lt;script src="https://cdn.syncfusion.com/ej2/17.3.17/dist/ejs.interop.min.js"&gt;&lt;/script&gt;

    参考:https://ej2.syncfusion.com/blazor/documentation/grid/getting-started/

    【讨论】:

    • 感谢您提供解决方案
    • 顺便说一句,Syncusion.EJ2.Blazor 中的 @Madhu 作为 Blazor 静态资产嵌入了正确的互操作。但是由于某种原因,与其他 Razor 组件库不同,它不能通过使用 _content/Syncfusion.EJ2.Blazor/ejs.interop.min.js 包含,您知道为什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 2022-12-29
    • 1970-01-01
    • 2013-11-12
    相关资源
    最近更新 更多