Blazor EditForm 输入文本
Blazor EditForm InputText
您好,我是 blazor webassembly 的新手,我正在尝试构建一个具有一些基本功能的简单商店。
我正在尝试制作用于添加产品的表单,如您所知,每个产品都必须链接到一个用户,在我的例子中,我将用户的用户名存储在产品中,这是我能想到的最简单的方法现在。
但我遇到了瓶颈,因为我不确定如何将用户的用户名包含到我的表单中,我获取用户名的方法是使用 <AuthorizeView>
上下文,然后从那里获取用户名。但是,我不知道如何将用户名放入 <InputText>
.
下面是我的 EditForm 的代码,用户名的 InputText 是第一个。
目前,用户需要输入自己的用户名才能创建产品。
那么有什么方法可以自动将用户名分配给 InputText
吗?
<EditForm Model="@newproduct" OnValidSubmit="AddProduct">
<DataAnnotationsValidator />
<CustomFormValidator @ref="customFormValidator" />
<div class="form-group row">
<label class="control-label col-md-12">Username</label>
<div class="col">
<InputText class="form-control" @bind-Value="newproduct.username" />
<ValidationMessage For="@(() => newproduct.username)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Product Name</label>
<div class="col">
<InputText class="form-control" @bind-Value="newproduct.Name" />
<ValidationMessage For="@(() => newproduct.Name)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Product Description</label>
<div class="col">
<InputText class="form-control" @bind-Value="newproduct.Description" />
<ValidationMessage For="@(() => newproduct.Description)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Image</label>
<div class="col">
<InputText class="form-control" @bind-Value="newproduct.Image" />
<ValidationMessage For="@(() => newproduct.Image)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Stock</label>
<div class="col">
<InputNumber class="form-control" @bind-Value=newproduct.Stock />
<ValidationMessage For="@(() => newproduct.Stock)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Price(no decimal)</label>
<div class="col">
<InputNumber class="form-control" @bind-Value=newproduct.Price />
<ValidationMessage For="@(() => newproduct.Price)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Category</label>
<div class="col">
<InputSelect class="form-control" @bind-Value="newproduct.P_Category">
<option value="">--Select--</option>
@foreach (var category in Categories)
{
<option value="@category.Name">@category.Name</option>
}
</InputSelect>
<ValidationMessage For="@(() => newproduct.P_Category)" />
</div>
</div>
<div class="form-group" align="right">
<button type="submit" class="btn btn-success">Add</button>
</div>
</EditForm>
测试
您可以尝试这样的操作:
<AuthorizeView>
<Authorized>
@ { newproduct.username = @context.User.Identity.Name; }
<EditForm Model="@newproduct" OnValidSubmit="AddProduct">
///////////
</EditForm>
</Authorized>
<NotAuthorized>
<a href="Identity/Account/Register">Register</a>
<a href="Identity/Account/Login">Log in</a>
</NotAuthorized>
</AuthorizeView>
@code
{
private Product newproduct = new Product();
}
注意:在现实世界的场景中,客户应该与订单相关联(如果愿意,您可以将其称为购物车),并且订单可能与订单的详细信息相关联,这是一个实体(OrderDetails)其中包含订单的详细信息。并且 OrderDetails 实体可能与给定产品相关联(产品实体)
您好,我是 blazor webassembly 的新手,我正在尝试构建一个具有一些基本功能的简单商店。
我正在尝试制作用于添加产品的表单,如您所知,每个产品都必须链接到一个用户,在我的例子中,我将用户的用户名存储在产品中,这是我能想到的最简单的方法现在。
但我遇到了瓶颈,因为我不确定如何将用户的用户名包含到我的表单中,我获取用户名的方法是使用 <AuthorizeView>
上下文,然后从那里获取用户名。但是,我不知道如何将用户名放入 <InputText>
.
下面是我的 EditForm 的代码,用户名的 InputText 是第一个。
目前,用户需要输入自己的用户名才能创建产品。
那么有什么方法可以自动将用户名分配给 InputText
吗?
<EditForm Model="@newproduct" OnValidSubmit="AddProduct">
<DataAnnotationsValidator />
<CustomFormValidator @ref="customFormValidator" />
<div class="form-group row">
<label class="control-label col-md-12">Username</label>
<div class="col">
<InputText class="form-control" @bind-Value="newproduct.username" />
<ValidationMessage For="@(() => newproduct.username)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Product Name</label>
<div class="col">
<InputText class="form-control" @bind-Value="newproduct.Name" />
<ValidationMessage For="@(() => newproduct.Name)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Product Description</label>
<div class="col">
<InputText class="form-control" @bind-Value="newproduct.Description" />
<ValidationMessage For="@(() => newproduct.Description)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Image</label>
<div class="col">
<InputText class="form-control" @bind-Value="newproduct.Image" />
<ValidationMessage For="@(() => newproduct.Image)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Stock</label>
<div class="col">
<InputNumber class="form-control" @bind-Value=newproduct.Stock />
<ValidationMessage For="@(() => newproduct.Stock)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Price(no decimal)</label>
<div class="col">
<InputNumber class="form-control" @bind-Value=newproduct.Price />
<ValidationMessage For="@(() => newproduct.Price)" />
</div>
</div>
<div class="form-group row">
<label class="control-label col-md-12">Category</label>
<div class="col">
<InputSelect class="form-control" @bind-Value="newproduct.P_Category">
<option value="">--Select--</option>
@foreach (var category in Categories)
{
<option value="@category.Name">@category.Name</option>
}
</InputSelect>
<ValidationMessage For="@(() => newproduct.P_Category)" />
</div>
</div>
<div class="form-group" align="right">
<button type="submit" class="btn btn-success">Add</button>
</div>
</EditForm>
测试
您可以尝试这样的操作:
<AuthorizeView>
<Authorized>
@ { newproduct.username = @context.User.Identity.Name; }
<EditForm Model="@newproduct" OnValidSubmit="AddProduct">
///////////
</EditForm>
</Authorized>
<NotAuthorized>
<a href="Identity/Account/Register">Register</a>
<a href="Identity/Account/Login">Log in</a>
</NotAuthorized>
</AuthorizeView>
@code
{
private Product newproduct = new Product();
}
注意:在现实世界的场景中,客户应该与订单相关联(如果愿意,您可以将其称为购物车),并且订单可能与订单的详细信息相关联,这是一个实体(OrderDetails)其中包含订单的详细信息。并且 OrderDetails 实体可能与给定产品相关联(产品实体)