绑定前缀在远程验证操作中不起作用

时间:2012-05-12 10:13:10

标签: ajax asp.net-mvc asp.net-mvc-3 validation

我问了一个类似的问题here。这是我的模特:

[DisplayName("National Code")]
[Required(ErrorMessage = "Required")]
[RegularExpression(CustomRegex.SSNRX, ErrorMessage = CustomRegex.SSNErMsg)]
[Remote("DBValidateSSN", "CustomerProfile", "Members", ErrorMessage = "Repeated.")]
public string SSN { get; set; }

所以我使用Generic Class作为模型而My View就像:

@Html.EditorFor(model => model.MainModel.SSN)
@Html.ValidationMessageFor(model => model.MainModel.SSN)

验证行动:

public JsonResult DBValidateSSN([Bind(Prefix = "MainModel")] string SSN) {

  // ....
  return Json(result, JsonRequestBehavior.AllowGet);
}

但是行动中的SSN参数总是为空,我的错在哪里?问题是我还检查了FireBug中的Ajax请求参数,使用的名称是MainModel.SSN,你的建议是什么?

1 个答案:

答案 0 :(得分:1)

试试这样:

public ActionResult DBValidateSSN([Bind(Prefix = "MainModel.SSN")] string SSN)
{
    // ...
    return Json(result, JsonRequestBehavior.AllowGet);
}