MVC3中的远程验证,空值的问题

时间:2012-03-24 16:31:25

标签: .net

我的模型类如下:

public class Employee
{
    public Guid ID { get; set; }
    [Required]
    [Remote("CheckName","Employee",ErrorMessage="Already Exists...!")]
    public String EmployeeName { get; set; }
    public String EmployeeAddress { get; set; }
    [Required]
    public DateTime DateOfBirth { get; set; }
    public decimal Salary { get; set; }
    public String Department { get; set; }
    public DateTime HireDate { get; set; }
}

我在控制器中的行动如下:

  [HttpGet]
    public JsonResult CheckName(string Name)
    {
        return Json(Name.Equals("MyString"), JsonRequestBehavior.AllowGet);
    }

当我执行此操作时,我收到以下异常

的NullReferenceException: 对象引用未设置为对象的n实例

在视图中,表单包含文本框和提交按钮。 如果您对这些事情不清楚,请告知我们进行远程验证。

1 个答案:

答案 0 :(得分:3)

不确定如何渲染有问题的文本框,但如果您正在使用:

@Html.TextboxFor(x => x.EmployeeName) // or
@Html.EditorFor(x => x.EmployeeName) // or
@Html.Textbox("EmployeeName")

输入的字段名称将呈现为< input name =“EmployeeName”/>和模型绑定将无法将其解析为CheckName方法的Name参数,从而尝试执行

Name.Equals("MyString")

虽然Name为null并导致NullReferenceException。如果将CheckName方法的参数名称更改为EmployeeName,则应该导致模型绑定将参数解析为文本框的名称。

这完全取决于我对情况的理解和做出一些假设。