我对一个字段进行了远程验证,它会触发,但我收到一个 500 错误,指出控制器方法中的参数为 null 为 null。实际发生的是模型名称被添加到 url,这使得它无法找到方法。
例子:
学生模型
[Remote("CheckExistingStudent", "Student", AdditionalFields = "FirstName", ErrorMessage = "This student already exists!")]
public string LastName { get; set; }
public string FirstName { get; set; }
由于某种原因,验证触发时创建的 url 是:
http://localhost:4855/Student/CheckExistingStudent?Student.LastName=Waters&Student.FirstName=Nigel
注意学生。在网址中。
我尝试了几种不同的方法签名:
public JsonResult CheckExistingResource(string FIrstName, string LastName)
public JsonResult CheckExistingResource(StudentModel model)
第一个返回 500 错误(空参数)。第二个通过 Student 模型进入他的方法,但第一个和最后一个为空。
我确信这正在发生,因为我正在使用 Html.BeginCollectionItem 帮助器来构建动态列表,以便用户可以在同一页面上输入多个学生。BCI 帮助程序的一部分是它使用唯一索引重命名每个字段。
所以我不认为我可以阻止 url 拥有模型。在里面。是否可以有模型。在方法参数名称中?我试了,报错。