使用ViewModel进行验证 - MVC4

时间:2014-08-09 21:52:42

标签: asp.net-mvc-4 unobtrusive-validation

我正在尝试在单个View中实现Create和List操作。我被建议使用ViewModel。我得到了object reference error。另外一些关于如何实现这一目标的好例子也会有所帮助。

我的模特课

public class Employee
{
    public int ID { get; set; }

    [Required(ErrorMessage="Please enter name")]
    public string Name { get; set; }

}

我的视图模型类

public class EmployeeVM
{
   public Employee Employee { get; set; }
   public List<Employee> Employees { get; set; }
}

我的控制器

 [HttpPost]
 public ActionResult Create(EmployeeVM emp, string Name)
 {
        if (ModelState.IsValid) //my modelstate is valid even when the value is empty string; it then gives an Object reference not set error
        {
            emp.Employee.Name = Name;

            repository.SaveRole(emp);

            return RedirectToAction("Index");
        }
        else
        {
            return View(emp);
        }
    }

我的观点

@model ERP.Domain.Entity.EmployeeVM

<body>
<div class="jumbotron">
    @using (Html.BeginForm("Create", "MyController", FormMethod.Post))
    {

   @Html.ValidationSummary(true)
        <label>
            Name</label>
        <input id="txtName" type="text" name="Name" class="btn btn-default" />
       @Html.ValidationMessageFor(model => model.Employee.Name)

        <input type="submit" value="Save" class="btn btn-primary" />
    }
</div>

如果我想在同一个视图中同时使用Create和List,我会在StackOverflow中建议使用ViewModel方法吗?这是正确的方法吗?一些例子可能有所帮助。

0 个答案:

没有答案