我有一个asp.net用户控件,它插入了asp.net和MVC页面
当控件在asp.net页面上时,其中的客户端验证工作正常,但是当控件在MVC页面上时,js验证中的以下调用失败;
Page_ClientValidate('ValidationGroup');
Chrome中出错:对象[object global]没有方法'Page_ClientValidate'
单击超链接按钮时,如何让我的客户端验证在我的mvc页面上工作?
我需要解决方案才能在MVC和ASP.Net上工作,因为我们的网站是两者的组合
答案 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窗体的混合站点 - 这是我无法控制的)网站。