首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blazor Server -一个URL

Blazor Server -一个URL
EN

Stack Overflow用户
提问于 2022-09-27 17:19:25
回答 1查看 47关注 0票数 0

我需要向页面传递一个参数:

www.website/{id}/{anotherID}

www.website.com/21/321

我不希望用户看到参数:

www.website.comwww.website.com/books

我想知道在布拉佐尔有可能吗?我实际上不需要将它作为路由参数传递,但不知道任何其他方法。

EN

回答 1

Stack Overflow用户

发布于 2022-09-28 14:02:46

有几种方法。这里是DI服务的方式。

创建一个类来保存数据:

代码语言:javascript
复制
public class MyPageData
{
    public int Value { get; set; }
}

在DI服务中注册

代码语言:javascript
复制
builder.Services.AddServerSideBlazor();
builder.Services.AddScoped<MyPageData>();

使用实例:

代码语言:javascript
复制
@page "/"
@inject MyPageData myPageData
@inject NavigationManager NavManager

<PageTitle>Index</PageTitle>

<h1>Hello, world!</h1>

Welcome to your new app.

<SurveyPrompt Title="How is Blazor working for you?" />

<button class="btn btn-primary" @onclick=this.GottoCounter>Go to Counter Page</button> 

@code {
    private void GottoCounter()
    {
        this.myPageData.Value = 10;
        NavManager.NavigateTo("/Counter");
    }
}

和反:

代码语言:javascript
复制
@page "/counter"
@inject MyPageData myPageData

<PageTitle>Counter</PageTitle>

<h1>Counter</h1>

<p role="status">Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
    private int currentCount = 0;

    protected override void OnInitialized()
    {
        currentCount = myPageData.Value;
    }

    private void IncrementCount()
    {
        currentCount++;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73871506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档