未定义的Page_ClientValidate

时间:2014-07-25 06:24:58

标签: asp.net asp.net-mvc validation razor

我有一个asp.net用户控件,它插入了asp.net和MVC页面

当控件在asp.net页面上时,其中的客户端验证工作正常,但是当控件在MVC页面上时,js验证中的以下调用失败;

Page_ClientValidate('ValidationGroup');

Chrome中出错:对象[object global]没有方法'Page_ClientValidate'

单击超链接按钮时,如何让我的客户端验证在我的mvc页面上工作?

我需要解决方案才能在MVC和ASP.Net上工作,因为我们的网站是两者的组合

3 个答案:

答案 0 :(得分:0)

尝试这样的事情,

$('#Form').submit(function () {
    if (typeof (Page_ClientValidate) == 'function') {
        Page_ClientValidate();
        if (Page_IsValid == true) {
            alert('the form is valid');
        }
    } else {
        if ($(this).valid()) {
            alert('the form is valid');
        }
    }
});

答案 1 :(得分:0)

你想做什么样的验证?

第一个选项:

MVC为您提供了很好的验证工具: 你听说过“数据注释”工具吗? 在配置模型字段时,可以使用名为“required”的通用验证注释,例如:

型号:

[Required ("ID Field is Required")]
public int ID {get; set;}

查看:

@html.texboxfor(m=>m.ID)
@validatefor((m=>m.ID)

在视图中,您将在您尝试验证的输入字段旁边看到一条红色消息。

您可以使用CSS更改默认消息设计和位置。

有一个很好的教程:

http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-6

有更多的数据注释验证,这取决于你想要做什么样的验证..

第二个选项:

您可以使用validate.js进行输入验证 - 它使您能够验证几乎任何类型的输入 - 从数字和字符串到表格,您可以自定义自己的验证规则......

默认选项:

使用原生js构建自己的验证方法,例如:

if( $(.myClass).length<0 )
   {
     alert( "Please Insert Value" );
     return false;
   }

编辑:

你可以创建:

查看:

@using("actionMethod","controller")
{
<!--Content contains "names" of tags-->
<input type="submit"/>
}

OR

<a href="@html.URL("text","actionMethod","controller" new{ "names" of tags })"></a>

控制器:

发布回发后,检查名称并返回相同的视图,如果名称不满足。

结束编辑

如果您有更多问题,请询问。

希望我帮助,祝你好运。

答案 2 :(得分:0)

有没有在使用RenderPartial嵌入MVC视图的ascx web表单用户控件上使用MVC Razor验证方法?

我现在遇到的问题是我的ascx用户控件上有一个自定义验证控件(只是标准的Web表单自定义验证器),当在MVC视图上使用此控件时(通过使用渲染部分),查看错误与以下错误;

Control&#39; ctl00_ProductListView_ctrl5_ctl00_ctl00_valValueMultiple&#39;类型&#39; CustomValidator&#39;必须放在带有runat = server的表单标记内。

这是因为MVC视图显然没有表格,但我不能简单地加一个。

我不能简单地从ascx web表单用户控件更改它,因为它会动态添加到MVC和Web窗体页面(我们有一个MVC和Web窗体的混合站点 - 这是我无法控制的)网站。