我正在使用一个新的带有Razor Pages的ASP.NET核心3.1应用程序,我想在其中使用第三方Blazor组件,但我遇到了让它工作的问题。我在许多网站上遵循了关于如何使用Razor页面在基于MVC的应用程序中启用Blazor组件的说明(更改startup.cs中的Configure和ConfigureServices方法,添加端点,包括Blazor的.js,等等)。
如果我自己编写一个组件并使用它,它似乎工作得很好。但我尝试使用Syncfusion的Blazor库,它就是拒绝工作。我试过Razor页面上的东西,比如
@(await Html.RenderComponentAsync<Syncfusion.EJ2.Blazor.Calendars.EjsDateTimePicker>(RenderMode.ServerPrerendered))它只适用于我手动创建的Blazor组件,而不适用于第三方EjsDateTimePicker组件。我还确保包含所需的@using引用,并且VS会查找所有内容,并在布局文件中包含JS引用。
我还尝试将第三方组件包含到我手动创建的组件中,因为Blazor允许这样做,并且VS可以识别组件/标记,但仍然拒绝呈现它。在这种情况下,当我调用自己的组件时,比如
<CustomRazorTest>@(await Html.RenderComponentAsync<TestProj.Components.Pages.CustomRazorTest>(RenderMode.ServerPrerendered))</CustomRazorTest>它加载除第三方组件之外的所有内容。我还尝试了不同的渲染方法,以防可能会修复它。但似乎什么都不起作用。
发布于 2019-12-09 23:50:34
我能让它工作起来。我的项目有几个小的改动,其中一些我不完全确定为什么。
对于其他可能有问题的人,这里是我必须解决的一些问题。
无论出于什么原因,
<script src="~/_framework/blazor.server.js" autostart="false"></script>不同于
<script src="_framework/blazor.server.js" autostart="false"></script>我的项目拒绝在没有~/的情况下工作,即使在MSFT自己的页面上的示例不使用~/。
<script>
Blazor.start({
configureSignalR: function (builder) {
builder.withUrl('/_blazor');
}
});
</script>我认为还有一两件事需要调整,但我现在正在忘记它们。如果我记得任何其他事情,我会更新我的回复。
https://stackoverflow.com/questions/59183041
复制相似问题