1

我目前正在尝试验证付款表单上的条款和条件复选框,以便在选中条款和条件复选框之前不会提交表单。

我正在创建的特定表单仅供一组使用 IE6 的客户使用(因此我无法使用 JQuery 进行验证)。

我已经使用所需的数据注释修饰了条款和条件 bool 模型值,但未显示所需的错误消息(与使用字符串、十进制或 int 等的其他值不同。

我已经设法使用此代码显示错误:

if (ModelState.IsValid && model.TermsAndConditions)
            {
                ConnectAndRedirectoToProtx(model);
            }
            else
            {
                //store locally and sort later
                TempData["message"] = "You must first read through and agree to the terms and conditions";
            }

此代码位于控制器的 HttpPost Index ActionResult 中,然后我在视图中呈现如下:

div style="color: red;font-weight:bold;">@TempData["message"]</div>

使用此 cpde 的问题是它仅显示所有其他字段是否正确,是否可以不使用 JQuery 显示此错误消息以及单击提交按钮后立即显示的其他错误消息?

4

1 回答 1

1

所需的数据注释标记在您的情况下将不起作用,因为即使未选中的复选框也会将错误值传递给模型。如果不支持 JQuery,您可以使用 Java Script(直到这也被浏览器阻止。)访问以下链接以获得帮助。

http://www.w3schools.com/js/js_form_validation.asp

此外,您可以更改控制器功能,如下所示,仅针对这种情况跟踪错误

if(!model.TermsAndConditions)
{
    TempData["message"] = "You must first read through and agree to the terms and conditions";
}

if (ModelState.IsValid)
        {
            ConnectAndRedirectoToProtx(model);
        }
        else
        {
            //store locally and sort later
            TempData["message"] = "Invalid Model or some other error message......";
        }
于 2012-12-20T11:42:15.250 回答