1

jquery 远程验证将输入字段名称 (mymodel.field1) 的前缀添加到 data-val-remote-additionalfields 中列出的每个附加字段。在我的附加字段中,我有一个不属于模型的隐藏字段,因此它具有正常名称,例如“fieldhidden”而不是“mymodel.fieldhidden”。

我通过查看控制器上的请求对象确认了这一点,并验证了查询字符串键之一是“mymodel.fieldhidden”而不是“fieldhidden”,并且数据为空。很确定它为空,因为 jquery 验证正在寻找“mymodel.fieldhidden”,当然找不到它。

有没有办法通过 mvc 属性而不是自动前缀或通过 jquery 操作来制作 jquery 以不自动为附加字段添加前缀,其中 name 属性的值格式为“model.fieldname”,其中添加了远程验证?

    [Remote("ValidationMethod", "Controller", AdditionalFields = "FieldNameInModel, ElementNameNotInModel")]
    public string FieldToRemoteValidate { get; set; }
4

1 回答 1

2

我最终不得不做的是两次添加隐藏字段。我已经对控制器中的多个操作进行了通用设置,期望名称保持原样。因此,通过使用 jquery 验证库所期望的命名约定添加隐藏字段,然后将其作为查询字符串的一部分进行传输。命名约定是 id 属性的 Model_Field 和 name 属性的 Model.Field。

然后我使用了带有前缀的绑定参数属性,如下所示:

[Bind(Prefix = "Model.FieldToRemotevalidate")] string FieldToRemoteValidate
于 2014-07-27T17:07:16.447 回答