微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

视图模型不会引发异常

如何解决视图模型不会引发异常

我正在尝试创建一个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 举报,一经查实,本站将立刻删除。