应用程序找不到位于另一个项目中的 Razor 页面
Posted
技术标签:
【中文标题】应用程序找不到位于另一个项目中的 Razor 页面【英文标题】:App not finding Razor page located in another project 【发布时间】:2020-12-05 06:47:19 【问题描述】:我正在从事 Razor Pages 项目。该解决方案由多个项目组成,即“Server”,它管理依赖注入的服务,是一个启动项目。包含索引页面和共享组件的“应用程序”,以及作为站点独立区域的多个“模块”项目。我需要在此解决方案中添加新模块,并带有登录页面。我创建了新项目,在解决方案中设置了对其他项目的所有引用,并在那里创建了一个带有“@page”/moduleC“”行的页面。但是,如果我运行解决方案并转到该页面 - 它会显示 404 页面。相同的配置适用于其他模块。是否需要一些额外的操作才能允许在多个项目之间进行路由?
【问题讨论】:
【参考方案1】:https://digitteck.com/frontend/blazor/blazor-page-in-another-assembly/
Router 组件负责映射剃须刀页面。
您需要使用 AdditionalAssemblies 参数添加其他程序集。
<CascadingAuthenticationState>
<Router AppAssembly="@typeof(Program).Assembly" AdditionalAssemblies="@_extraAssemblies">
<Found Context="routeData">
...
</Found>
<NotFound>
...
</NotFound>
</Router>
</CascadingAuthenticationState>
@code
private List<System.Reflection.Assembly> _extraAssemblies = new List<System.Reflection.Assembly>()
typeof(OtherProject.SomeObjectInOtherProject).Assembly,
;
【讨论】:
就我而言,这正是我所需要的。【参考方案2】:我假设您正在开发 Blozor 应用程序。如果我的猜测是正确的,请在您的 Balzor.WebAssembly 或 Balzor.Server 项目的 _Import.razor 中导入引用。
例子
@using .ComponentsLibrary @using .ComponentsLibrary.
【讨论】:
我在 Blazor 应用上工作,我已经在 _Imports 页面中添加了对我的项目的引用 @JohnDiGriz,在我的示例应用程序中,我可以使用NavLink
导航到 SharedComponents 页面,也可以通过更改浏览器 URL 中的路由直接使用 NavigationManager.NavigateTo
导航到 SharedComponents 页面。不确定您的问题到底是什么。尝试通过在新组件中保留 _App.razor 中的制动点来调试它。尝试清除缓存并删除浏览器历史记录并运行应用程序。
你能帮我走几步吗?因为我尝试创建示例应用程序但问题仍然存在。也许我忘记了别的东西
@JohnDiGriz 下面是我遵循的步骤 * 在 SharedComponentsProject 中创建了 Map 组件 * 在 _Imports.razor 中添加了引用 * 在 UI 项目中创建了新的 razor 组件,并使用了新创建的组件的名称组件并提到了@page <--url-->
* 在导航页面中添加了 NavLink 并提到了路径 场景 2 * 在提到我要重定向的组件的 NavigationManger with path
的事件中在 Home 组件中添加了一个按钮 这两种情况都对我有用。
我不确定我到底做了什么,但在搞砸了几天后它开始正常工作。谢谢以上是关于应用程序找不到位于另一个项目中的 Razor 页面的主要内容,如果未能解决你的问题,请参考以下文章
IntelliSense 在 Razor Pages 项目中找不到 ViewComponent Invoke() 方法
覆盖 asp.net core razor 页面中的 razor 视图
Razor 页面在 ASP.NET Core RC2 运行时看不到引用的类库