Blazor - 客户端无法使用 dll 中定义的模型
Blazor - Client can't use model defined in dll
我在尝试使用在 dll 中定义的模型时遇到问题。我已将命名空间导入 _imports.razor 中的模型。但是,当我尝试在页面上使用它时,我仍然收到错误消息“名称 'UserRegisterViewModel' 在当前上下文中不存在”。有谁知道问题可能是什么?谢谢!
编辑:
我在尝试使用 UserRegisterViewModel 时在 html 中收到错误,例如 <EditForm Model="UserRegisterViewModel" OnValidSubmit="HandleRegistration">
型号
public class UserRegisterViewModel
{
[Required]
public string Email { get; set; }
[Required]
public string Password { get; set; }
}
页数
@page "/register"
@inject IAuthService AuthService
@inject NavigationManager NavigationManager
<h1>Register</h1>
@if (ShowErrors)
{
<div class="alert alert-danger" role="alert">
@foreach (var error in Errors)
{
<p>@error</p>
}
</div>
}
<div class="card">
<div class="card-body">
<h5 class="card-title">Please enter your details</h5>
<EditForm Model="UserRegisterViewModel" OnValidSubmit="HandleRegistration">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="form-group">
<label for="email">Email address</label>
<InputText Id="email" class="form-control" @bind-Value="UserRegisterViewModel.Email" />
<ValidationMessage For="@(() => UserRegisterViewModel.Email)" />
</div>
<div class="form-group">
<label for="password">Password</label>
<InputText Id="password" type="password" class="form-control" @bind-Value="UserRegisterViewModel.Password" />
<ValidationMessage For="@(() => UserRegisterViewModel.Password)" />
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</EditForm>
</div>
</div>
@code {
private UserRegisterViewModel RegisterModel = new UserRegisterViewModel();
private bool ShowErrors;
private IEnumerable<string> Errors;
private async Task HandleRegistration()
{
ShowErrors = false;
var result = await AuthService.Register(UserRegisterViewModel);
if (result.Successful)
{
NavigationManager.NavigateTo("/login");
}
else
{
Errors = result.Errors;
ShowErrors = true;
}
}
}
谢谢!
Model="UserRegisterViewModel"
你绑定到类型而不是实例 RegisterModel
@page "/register"
@inject IAuthService AuthService
@inject NavigationManager NavigationManager
<h1>Register</h1>
@if (ShowErrors)
{
<div class="alert alert-danger" role="alert">
@foreach (var error in Errors)
{
<p>@error</p>
}
</div>
}
<div class="card">
<div class="card-body">
<h5 class="card-title">Please enter your details</h5>
<EditForm Model="RegisterModel" OnValidSubmit="HandleRegistration">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="form-group">
<label for="email">Email address</label>
<InputText Id="email" class="form-control" @bind-Value="RegisterModel.Email" />
<ValidationMessage For="@(() => RegisterModel.Email)" />
</div>
<div class="form-group">
<label for="password">Password</label>
<InputText Id="password" type="password" class="form-control" @bind-Value="RegisterModel.Password" />
<ValidationMessage For="@(() => RegisterModel.Password)" />
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</EditForm>
</div>
</div>
@code {
private UserRegisterViewModel RegisterModel = new UserRegisterViewModel();
private bool ShowErrors;
private IEnumerable<string> Errors;
private async Task HandleRegistration()
{
ShowErrors = false;
var result = await AuthService.Register(RegisterModel);
if (result.Successful)
{
NavigationManager.NavigateTo("/login");
}
else
{
Errors = result.Errors;
ShowErrors = true;
}
}
}
我在尝试使用在 dll 中定义的模型时遇到问题。我已将命名空间导入 _imports.razor 中的模型。但是,当我尝试在页面上使用它时,我仍然收到错误消息“名称 'UserRegisterViewModel' 在当前上下文中不存在”。有谁知道问题可能是什么?谢谢!
编辑:
我在尝试使用 UserRegisterViewModel 时在 html 中收到错误,例如 <EditForm Model="UserRegisterViewModel" OnValidSubmit="HandleRegistration">
型号
public class UserRegisterViewModel
{
[Required]
public string Email { get; set; }
[Required]
public string Password { get; set; }
}
页数
@page "/register"
@inject IAuthService AuthService
@inject NavigationManager NavigationManager
<h1>Register</h1>
@if (ShowErrors)
{
<div class="alert alert-danger" role="alert">
@foreach (var error in Errors)
{
<p>@error</p>
}
</div>
}
<div class="card">
<div class="card-body">
<h5 class="card-title">Please enter your details</h5>
<EditForm Model="UserRegisterViewModel" OnValidSubmit="HandleRegistration">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="form-group">
<label for="email">Email address</label>
<InputText Id="email" class="form-control" @bind-Value="UserRegisterViewModel.Email" />
<ValidationMessage For="@(() => UserRegisterViewModel.Email)" />
</div>
<div class="form-group">
<label for="password">Password</label>
<InputText Id="password" type="password" class="form-control" @bind-Value="UserRegisterViewModel.Password" />
<ValidationMessage For="@(() => UserRegisterViewModel.Password)" />
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</EditForm>
</div>
</div>
@code {
private UserRegisterViewModel RegisterModel = new UserRegisterViewModel();
private bool ShowErrors;
private IEnumerable<string> Errors;
private async Task HandleRegistration()
{
ShowErrors = false;
var result = await AuthService.Register(UserRegisterViewModel);
if (result.Successful)
{
NavigationManager.NavigateTo("/login");
}
else
{
Errors = result.Errors;
ShowErrors = true;
}
}
}
谢谢!
Model="UserRegisterViewModel"
你绑定到类型而不是实例 RegisterModel
@page "/register"
@inject IAuthService AuthService
@inject NavigationManager NavigationManager
<h1>Register</h1>
@if (ShowErrors)
{
<div class="alert alert-danger" role="alert">
@foreach (var error in Errors)
{
<p>@error</p>
}
</div>
}
<div class="card">
<div class="card-body">
<h5 class="card-title">Please enter your details</h5>
<EditForm Model="RegisterModel" OnValidSubmit="HandleRegistration">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="form-group">
<label for="email">Email address</label>
<InputText Id="email" class="form-control" @bind-Value="RegisterModel.Email" />
<ValidationMessage For="@(() => RegisterModel.Email)" />
</div>
<div class="form-group">
<label for="password">Password</label>
<InputText Id="password" type="password" class="form-control" @bind-Value="RegisterModel.Password" />
<ValidationMessage For="@(() => RegisterModel.Password)" />
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</EditForm>
</div>
</div>
@code {
private UserRegisterViewModel RegisterModel = new UserRegisterViewModel();
private bool ShowErrors;
private IEnumerable<string> Errors;
private async Task HandleRegistration()
{
ShowErrors = false;
var result = await AuthService.Register(RegisterModel);
if (result.Successful)
{
NavigationManager.NavigateTo("/login");
}
else
{
Errors = result.Errors;
ShowErrors = true;
}
}
}