Blazor Razor 组件与 MVC
Blazor Razor-components with MVC
我想创建一个 mvc 应用程序,我可以将 mvc 控制器与 razor 页面而不是 cshtml 结合使用吗?欢迎任何帮助教程或文档。
谢谢。
如果您在询问 'Can I combine mvc controller with razor pages instead of cshtml?' 时询问的是是否可以将 Blazor 组件添加到 MVC 应用程序,那么它是如何完成的:
启动一个新的 .Net 5.0.402。它可能适用于早期版本,但我还没有测试过。
在您的 MVC 解决方案中,添加一个 Blazor Web 程序集应用程序项目。这是网络组装组件项目。
在 MVC 视图中,在您希望呈现 Blazor 组件的位置添加:
@using myawesomewasmprojectnamespace.Pages
<component type="typeof(Counter)" render-mode="WebAssemblyPrerendered"/>
<script src="_framework/blazor.webassembly.js"></script>
“@using
”声明引用了 blazor web 程序集应用程序项目,Pages 目录。 'typeof(Counter)
' 类型指的是默认 blazor web assembly 应用程序项目中的 Counter.razor
组件,visual studio 提供。这当然可以换成最终的设计组件。
在 MVC 项目的 _Layout.cshtml
中,或 MVC 视图的 <head>
标记所在的任何位置,为每个包含 blazor 组件的页面添加 <head>
标记:
<base href="/"/>
将 'Microsoft.AspNetCore.Components.WebAssembly.Server' 包添加到您的 MVC 项目中,版本 5.12 NO HIGHER!
在您的 MVC 依赖项、项目引用中添加对 blazor web 程序集应用程序项目的引用。
在 MVC 应用程序 Startup.cs 的“public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
”方法中,添加以下内容:
app.UseBlazorFrameworkFiles();
在 blazor web assembly 应用程序项目 Program.cs
文件中,注释掉以下行以停止应用程序查找 '<div id="app"></div>
'
//builder.RootComponents.Add<App>("#app");
最后,从 blazor web assembly 应用程序项目的 wwwroot 目录中删除 favicon,因为它会与 MVC 冲突。
然后将 'Counter' 组件添加到您的 MVC 视图。
要将不同的 Blazor 组件添加到不同的视图,请将其插入:
@using myawesomewasmprojectnamespace.Pages
<component type="typeof(Myawsomecomponentnamecompletelydifferentfromanymvccontrolleroractionname)" render-mode="WebAssemblyPrerendered"/>
<script src="_framework/blazor.webassembly.js"></script>
并启动你的 blazor 组件:
@page "/myawsomecomponentnamecompletelydifferentfromanymvccontrolleroractionname"
我想创建一个 mvc 应用程序,我可以将 mvc 控制器与 razor 页面而不是 cshtml 结合使用吗?欢迎任何帮助教程或文档。 谢谢。
如果您在询问 'Can I combine mvc controller with razor pages instead of cshtml?' 时询问的是是否可以将 Blazor 组件添加到 MVC 应用程序,那么它是如何完成的:
启动一个新的 .Net 5.0.402。它可能适用于早期版本,但我还没有测试过。
在您的 MVC 解决方案中,添加一个 Blazor Web 程序集应用程序项目。这是网络组装组件项目。
在 MVC 视图中,在您希望呈现 Blazor 组件的位置添加:
@using myawesomewasmprojectnamespace.Pages
<component type="typeof(Counter)" render-mode="WebAssemblyPrerendered"/>
<script src="_framework/blazor.webassembly.js"></script>
“@using
”声明引用了 blazor web 程序集应用程序项目,Pages 目录。 'typeof(Counter)
' 类型指的是默认 blazor web assembly 应用程序项目中的 Counter.razor
组件,visual studio 提供。这当然可以换成最终的设计组件。
在 MVC 项目的 _Layout.cshtml
中,或 MVC 视图的 <head>
标记所在的任何位置,为每个包含 blazor 组件的页面添加 <head>
标记:
<base href="/"/>
将 'Microsoft.AspNetCore.Components.WebAssembly.Server' 包添加到您的 MVC 项目中,版本 5.12 NO HIGHER!
在您的 MVC 依赖项、项目引用中添加对 blazor web 程序集应用程序项目的引用。
在 MVC 应用程序 Startup.cs 的“public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
”方法中,添加以下内容:
app.UseBlazorFrameworkFiles();
在 blazor web assembly 应用程序项目 Program.cs
文件中,注释掉以下行以停止应用程序查找 '<div id="app"></div>
'
//builder.RootComponents.Add<App>("#app");
最后,从 blazor web assembly 应用程序项目的 wwwroot 目录中删除 favicon,因为它会与 MVC 冲突。
然后将 'Counter' 组件添加到您的 MVC 视图。
要将不同的 Blazor 组件添加到不同的视图,请将其插入:
@using myawesomewasmprojectnamespace.Pages
<component type="typeof(Myawsomecomponentnamecompletelydifferentfromanymvccontrolleroractionname)" render-mode="WebAssemblyPrerendered"/>
<script src="_framework/blazor.webassembly.js"></script>
并启动你的 blazor 组件:
@page "/myawsomecomponentnamecompletelydifferentfromanymvccontrolleroractionname"