问题描述
我正在尝试创建一个mvc应用程序:
public class Employee
{
[Key]
public int Id { get; set; }
[required]
[MaxLength(50,ErrorMessage = "Name cannot exceed 50 characters")]
public string Name { get; set; }
[required]
[EmailAddress]
[display(Name = "Office Name")]
public string Email { get; set; }
[required]
public Dept? Department { get; set; }
public string Photopath { get; set; }
}
我需要创建一个视图模型,所以我这样做了:
public class EmployeeCreateviewmodel
{
public Employee Employee { get; set; }
}
用于视图模型的视图:
@model EmployeeCreateviewmodel
@{
ViewData["Title"] = "Create";
}
<form enctype="multipart/form-data" asp-controller="Home" asp-action="Create" method="post">
<div class="form-group">
<div>
<span asp-validation-for="@Model.Employee.Name" class="text-danger"></span>
</div>
<label asp-for="@Model.Employee.Name">Name</label>
<input type="text" asp-for="@Model.Employee.Name" class="form-control" />
</div>
<button class="btn btn-success">Go</button>
</form>
在控制台中,输入属性如下:
<input type="text" class="form-control" data-val="true" data-val-maxlength="Name cannot exceed 50
characters" data-val-maxlength-max="50" data-val-required="The Name field is required."
id="Employee_Name" maxlength="50" name="Employee.Name" value="">
发布请求
[HttpPost]
public IActionResult Create(EmployeeCreateviewmodel model)
{
if(ModelState.IsValid)
{
// string uniqueFileName = FileUpload(model);
Employee newEmp = new Employee
{
Name = model.Employee.Name,Email = "somename",Department = Dept.HR
};
_employeeRepositry.Add(newEmp);
return RedirectToAction("Details",new { Id = newEmp.Id });
}
return View();
}
当验证失败时,在ui上没有消息。 “ asp-validation-for”可能不会被触发。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)