我想验证三个字段中的至少一个不为空。我正在尝试使用 ASP.NET 远程验证机制来做到这一点。
我有以下模型:
public class MyModel
{
public MyModel()
{
EmployeeIds = new List<int>();
ManagerIds= new List<int>();
}
[Remote("AtLeastOneSelected", "Company", AdditionalFields = "EmployeeIds, ManagerIds")]
public int? SuperManagerId { get; set; }
public IEnumerable<int> EmployeeIds { get; set; }
public IEnumerable<int> ManagerIds{ get; set; }
}
控制器:
public ActionResult AtLeastOneSelected(int supermanagerid, IEnumerable<int> employeeids, IEnumerable<int> managerids)
{
var isSuperManagerSelected = Request.Params["SuperManagerId"] != "null";
var isEmployeeSelected = Request.Params["EmployeeIds"] != "null";
var isManagerSelected = Request.Params["ManagerIds"] != "null";
return Json(isSuperManagerSelected || isEmployeeSelected || isManagerSelected, JsonRequestBehavior.AllowGet);
}
EmployeeIds 和 ManagerIds 使用多选在视图上实现。我第一次修改 SuperManagerId 时验证过一次。当我尝试再次修改它甚至提交我的表单时,远程验证不起作用。
我试图强制验证视图:
$('body').on('click', '#create-company', function () {
$("form").validate().form();
if ($("form").valid()) {
alert('valid');
$("form").submit();
} else {
alert('error');
}
});
但这没有帮助。