我的模型类如下:
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个实例
在视图中,表单包含一个文本框和一个提交按钮。如果你不清楚这些事情,请让我知道执行远程验证。
不确定如何呈现有问题的文本框,但如果您使用:
@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,则会导致模型绑定将参数解析为文本框的名称。
这一切都取决于我对形势的理解和做出一些假设。