ASP.NET Core Blazor页面传递参数

本文展示了一个Razor页面组件的例子,其中包含一个输入框和两个按钮,用于演示C#与JavaScript之间的交互。用户可以修改用户名,点击按钮后,会触发JS调用C#方法或反之。同时,组件实现了状态更新以反映用户界面的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对页面的除了常用的组件参数外,还可以用如下方式:

Index.razor

@page "/"

<PageTitle>@UserName</PageTitle>

<div id="divUserName">
    <input type="text" id="txtUserName" value="@UserName"/>
    <a href="/counter/@UserId">计数页面</a>
</div>

 <button class="btn btn-primary" onclick="InvokeCSharp()">JS调用C#</button>
 <button class="btn btn-primary" @onclick="InvokeJS">C#调用JS</button>

Index.razor.cs

using System.Diagnostics;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;

namespace MyProject.Pages;

public partial class Index
{
    private static Func<string,Task> TestAsync;

    private string UserName{set;get;} = "小明";

    private string UserId{set;get;} = "2";

    [Inject]
    private IJSRuntime JS{set;get;}

    private async void InvokeJS()
    {
        await JS.InvokeVoidAsync("showInfo", "小红");
    }

    protected override void OnInitialized()
    {
        base.OnInitialized();
        TestAsync = LocalTestAsync;
    }

    [JSInvokable]
    public static async Task Test(string value)
    {
        await TestAsync.Invoke(value);
    }

    private async Task LocalTestAsync(string value)
    {
        if (UserName == "小明")
        {
            UserName = value;
        }
        else 
        {
            UserName = "小明";
        }

        Console.WriteLine("UserName=" + UserName);

        StateHasChanged();
    }
}

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值