【发布时间】:2022-01-18 10:33:28
【问题描述】:
我有一个包含 2 个字段(姓名和地址)的表单,在我的模型中都是必填字段。
在我的模型上,我有 5 个属性(ID (Pk)、Name、Address、Createdby 和 Updatedby),除了主键 ID 之外,它们都设置为必需。
在我的 Editform 上,我想只允许填写 Name 和 Address 字段,但 createdby 和 updatedby 将在我的 Insert 中完成。
如何让这个在我的表单上有效。由于(Createdby和Updatedby)上的必需规则,我变得无效,当我添加validationsummary标签时会出现这种情况。如果我不添加标签,则文本框有效,但 submitPerson 方法无效。
有没有办法解决这个问题?请在下面查看我的代码。
提前致谢。
****MY EDITFORM ********
<EditForm EditContext="@myEditContext" OnSubmit="@SubmitPerson">
<DataAnnotationsValidator />
<InputText class="form-control" id="NameInput" @bind-Value="Person.Name" />
<InputText class="form-control" id="AddressInput" @bind-Value="Person.Address" />
<button type="submit" class="btn btn-primary">Submit</button>
</EditForm>
*********** MY CODE ****************
@code {
public PersonModel Person = new PersonModel();
EditContext myEditContext { get; set; }
private string ValidMEssage;
protected override void OnInitialized() {
myEditContext = new EditContext(Person);
base.OnInitialized();
}
// my submit button method
protected void SubmitPerson(EditContext editContext) {
bool isFormValid = editContext.Validate();
if (isFormValid)
{
//apply when the form is valid
ValidMEssage = "Save successfully";
}
else
{
//apply when the form is not valid
ValidMEssage = "Invalid";
}
}
*****MY MODEL ********
public class PersonModel {
public int ID { get; set; }
[Required(AllowEmptyStrings = false)]
public String Name { get; set; }
[Required(AllowEmptyStrings = false)]
public String Address { get; set; }
[Required(AllowEmptyStrings = false)]
public String CreatedBy { get; set; }
[Required(AllowEmptyStrings = false)]
public String UpdatedBy { get; set; }
}
【问题讨论】:
标签: blazor blazor-server-side asp.net-blazor