2012-09-14 184 views
0

我正在使用Ajax.BeginForm并希望将参数传递给用OnBegin调用的函数。以下是两个代码片段。ASP.NET MVC 3,Ajax.BeginForm,OnBegin和表单验证

new AjaxOptions 
{ 
    HttpMethod = "POST", 
    UpdateTargetId = "DataEntrySummary",     
    OnBegin = "ValidateForm(11,55)" 
} 

function ValidateForm(minAge, maxAge) {return false;} 

参数被正确地传递给ValidateForm函数,但函数总是返回true。

如果我把参数并使用

OnBegin = "ValidateForm()" 
function ValidateForm() {return false;} 

它完美并返回false。我是否错过了某些东西,或者是这里不允许的参数或...

牛津的困惑 - 提前致谢。

PS - 由于非常好的原因,我无法使用C#属性和Unobtrusive验证(这些代码片段)。

+0

http://stackoverflow.com/questions/4043765/modify-posted-input-values-on-onbegin-of-ajax-beginform – CrazyCoderz

回答

0

我不确定CrazyCoderz的评论是如何涉及的,但它与某些方面有关。

我发现的是,函数名称后面的任何内容都会导致Ajax OBegin返回true。这包括OnBegin =“ValidateForm()”。 [我上面的括号中的错误]

我现在正在执行'work around' - 两个之一 - 要么写我自己的Ajax调用从表单的测试输入元素读取属性以获取值我想要。所以,感谢CrazyCoderz让我走上了解决方案的轨道。

3

使用

OnBegin = "return ValidateForm(11,55)" 

function ValidateForm(a,b) { 
    return a<b; 
}