在 .NET MAUI Blazor Hybrid 应用程序中,razor 组件呈现链接,例如:
在 .NET MAUI Blazor Hybrid 应用程序中,razor 组件呈现链接,例如:
<NavLink href="@($"PharmakaPdfViewer/{row.Id}")" Match="NavLinkMatch.Prefix">...</NavLink>
这是该组件的代码 PharmakaPdfViewer
:
@page "/pharmakapdfviewer/{id}"
<h3>PharmakaPdfViewer @Id</h3>
<PdfViewer Class="mb-3" Url="@link" />
@code {
[Parameter]
public string? Id { get; set; }
private string? link = string.Empty;
protected override async Task OnInitializedAsync()
{
var serviceClient = new APIServiceClient();
var dataRow = await serviceClient.GetDataRowAsync(Int32.Parse(Id));
link = dataRow.Link;
await base.OnInitializedAsync();
}
}
PdfViewer
是 这个 Blazor Bootstrap 组件 ,它加载通过 URL 获取的 PDF 文件 link
。 属性的值 link
在重写中设置 OnInitializedAsync
,它调用 SOAP Web 服务并返回与提供的 对应的 pdf 文件的 URL Id
,例如:
https://localhost:44360/Content/Sample.pdf
第一次,一切正常 ,并显示了 pdf。
但是,当我导航回链接列表并单击另一个(或相同的)时,我总是收到以下错误(在 DevTools 控制台中),并且保持为 PdfViewer
空,如屏幕截图所示:
Invalid parameter object: need either .data, .range or .url
Error: Invalid parameter object: need either .data, .range or .url
at Module.getDocument (https://0.0.0.0/_content/Blazor.Bootstrap/pdfjs-4.0.379.min.js:21:46398)
at Module.initialize (https://0.0.0.0/_content/Blazor.Bootstrap/blazor.bootstrap.pdf.js:202:11)
at https://0.0.0.0/_framework/blazor.webview.js:1:3050
at new Promise (<anonymous>)
at g.beginInvokeJSFromDotNet (https://0.0.0.0/_framework/blazor.webview.js:1:3007)
at https://0.0.0.0/_framework/blazor.webview.js:1:48020
at EventTarget.<anonymous> (<anonymous>:7:62)
at EmbeddedBrowserWebView.<anonymous> (<anonymous>:1:43835)
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
at Microsoft.JSInterop.JSObjectReferenceExtensions.InvokeVoidAsync(IJSObjectReference jsObjectReference, String identifier, Object[] args)
at BlazorBootstrap.PdfViewerJsInterop.InitializeAsync(Object objRef, String elementId, Double scale, Double rotation, String url)
at BlazorBootstrap.PdfViewer.OnAfterRenderAsync(Boolean firstRender)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
知道为什么会发生这种情况以及如何解决吗?