【发布时间】:2020-05-26 17:20:14
【问题描述】:
我将 Blazor 用于我的 Web 项目。我正在学习这个框架,但我遇到了问题。如果我想去另一页,我可以这样做:
<a href="DetailsPage" class="btn btn-primary">Details</a>
现在,我创建了一个登录页面(我的索引页面和 URL 是 https://5000)并检查用户信息。我没有任何授权。如果此信息为真,则用户转到主页,否则用户停留在登录页面。但是,当我尝试真实信息并单击登录按钮时,我会转到主页(https://5000/homepage)并再次返回登录页面(https://5000/?)。当我返回登录页面时,我的 URL 是“https://5000/?”。为什么我返回登录页面并看到“?”。
@page "/"
@using MyProject.Data
@using System.Net.Http
@inject HttpClient Http
@inject IMatToaster Toaster
@inject NavigationManager NavigationManager
<form>
<div class="form-group">
<label for="UserName">User Name</label>
<input type="text" class="form-control" placeholder="User Name" @bind="@UserName">
</div>
<div class="form-group">
<label for="UserPassword">User Password</label>
<input type="password" class="form-control" placeholder="User Password" @bind="@UserPassword">
</div>
<button type="submit" class="btn btn-primary" @onclick="@Login">Log In</button>
</form>
@code {
private User[] UserList;
private User[] Control;
public string UserName, UserPassword;
protected override async Task OnInitializedAsync()
{
await getData();
}
protected async Task getData()
{
UserList = await Http.GetJsonAsync<User[]>("/api/Users/");
}
protected void Login()
{
if (String.IsNullOrEmpty(UserName) || String.IsNullOrEmpty(UserPassword))
{
}
else
{
Control = UserList.Where(A => A.UserName.Equals(UserName, StringComparison.OrdinalIgnoreCase) && A.UserPassword == UserPassword).ToArray();
if (Control.Length == 0)
{
}
else
{
NavigationManager.NavigateTo("/homepage");
}
}
}
}
【问题讨论】:
标签: asp.net-core navigation blazor blazor-server-side