0

我正在尝试将一个半旧的 MVC2 站点翻译成一个新的、时髦的 MVC4 站点。到目前为止一切顺利,我真的只停留在网站的验证部分。我有一个 jquery 函数,它应该检查某个值的唯一性,如果它确实是唯一的,则允许表单提交,否则它不会提交。此外,仅当设置了某个变量时才需要...“isFlagSet”,如果您愿意的话。如果是,则 required 为真……然后您将远程检查唯一性。jquery验证函数如下

$('#eEncId').validate({
    rules: {
        HospitalFinNumber: {
            required: function (element) {
                debugger;
                return '@isFlagSet' != 'True'; //$('AddEnc').val() === 'AddEnc';
            },
            minlength: 6,
            remote: function () {
                debugger;
                return {
                    url: '@Url.Action("ValidateHosFin", "EditEncounter")',
                    data: { hospitalFin: $('#HospitalFinNumber').val(), encflag: '@encflag' }
                };
            }
        },
        DateOfBirth: {
            required: true
        },
        AdminDate: {
            required: true
        },
        Comment: {
            required: function (element) {
                return $(element).val().length > 4000;
            },
            maxlength: 4000
        }
    },
    messages: {
        HospitalFinNumber: 'Please Enter a valid Hospital Fin number',
        DateOfBirth: 'Please enter a valid Date Of Birth',
        AdmitDate: 'Please select an Admit Date',
        Comment: 'Why dont you stop attempting to put in more than 4000 characters?  Thanks...'
    }
});

看起来,很简单,对吧?嗯,它在 MVC2 中。现在我遇到了一些逻辑上的不一致(在我自己微弱的头脑中),而且似乎我没有调用远程函数。即使我正在进入远程调试器。难道我做错了什么?即使我不使用 unobtrusive-ajax,我是否需要在 Model 字段上放置一个远程属性?你们会推荐什么?

4

1 回答 1

0

看起来好像要成功调用远程函数,您还需要在返回参数列表中包含类型参数......

remote: function () {
    debugger;
    return {
        url: '@Url.Action("ValidateHosFin", "EditEncounter")',
        type: "POST",
        data: { hospitalFin: $('#HospitalFinNumber').val(), encflag: '@encflag' }
    };
}
于 2012-12-06T15:00:40.607 回答