Blazor base-tag and @page instruction in .razor files(.razor 文件中的 Blazor 基本标记和 @page 指令)
问题描述
我开始使用 Blazor 服务器端,但我没有得到正确的路由.我不明白 _host.cshtml 中需要 base 标记.如果我仍然需要在每个 Blazor 组件中添加 base url,例如:我想要一个 /app/ 的基地址和 @page<值为 "/counter" 的示例 Counter 的/code> 指令不会编译"为 "/app/counter".我必须将 @page 设置为 "/app/counter" 这很有意义,但这意味着 _host 中的 没用...base 标记.cshtml
我在这里做错了什么?
<base href='' > 是一个
I am getting started with Blazor server-side and I don't get the routing right. I don't understand the need for the base tag in _host.cshtml. If I still have to add the base url in every Blazor component, for example: I want to have a base address of /app/ and the @page directive for the example Counter with a value of "/counter" does not "compile" to "/app/counter". I have to set the @page to "/app/counter" which makes sense but that means that the base Tag in _host.cshtml is useless...
What am I getting wrong here?
The <base href='' > is a client side technology that specifies the base URL for all relative URLs in current document. Many SPA frameworks , e.g. Angular, will use this element.
I have to set the @page to "/app/counter"
Actually, you don't have to and should never do that. One of the most important advantages when using <base> is that it allows us to create an app without letting the components know about the base url.
Assuming you've changed the base href from '/' to '/app/', and also changed the other relative urls:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>BlazorApp</title>
<base href="/app/" />
<link rel="stylesheet" href="/css/bootstrap/bootstrap.min.css" />
<link href="/css/site.css" rel="stylesheet" />
</head>
<body>
<app>
@(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
</app>
<script src="/_framework/blazor.server.js"></script>
</body>
</html>
Don't forget to prepend the default Blazor Hub url with a /app/ :
app.UseEndpoints(endpoints =>
{
endpoints.MapBlazorHub("/app/_blazor");
endpoints.MapFallbackToPage("/_Host");
});
That's all. There's no need to change the routes from @page "/counter" to @page "/app/counter" at all.
Demo
Here's a demo that we don't change the @page routes for components:
这篇关于.razor 文件中的 Blazor 基本标记和 @page 指令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:.razor 文件中的 Blazor 基本标记和 @page 指令
基础教程推荐
- 如果有人提交恶意软件Nuget包怎么办? 2022-01-01
- 禁止输入少量字符,例如'<'、'&a 2022-01-01
- Azure Functions:CosmosDBTrigger 未在 Visual Studio 中触发 2022-01-01
- WPF 模态进度窗口 2022-01-01
- .NET SerialPort DataReceived 事件未触发 2022-01-01
- 我应该在后面的代码中直接使用 Linq To SQL 还是使 2022-01-01
- C# 从 List<List<int>> 中删除重 2022-01-01
- Moq It.Is<>不匹配 2022-01-01
- 当值可以是对象或空数组时反序列化 JSON 2022-01-01
- 如何使用 .Net 检查 Active Directory 服务器是否已启动并正在运行? 2022-01-01
