首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MVC中的数据验证不起作用

MVC中的数据验证不起作用
EN

Stack Overflow用户
提问于 2012-05-17 10:38:17
回答 2查看 630关注 0票数 0

我正在尝试使用MVC应用程序中不引人注目的js来执行字段验证。

代码语言:javascript
运行
AI代码解释
复制
I have the following in the ViewModel:

    [DataMember(EmitDefaultValue = false)]
    [Required(ErrorMessage="CompanyName is Required")]
    [StringLength(40, ErrorMessage = "Must be under 40 characters")]
    public string CompanyName { get; set; }

Web.config:

代码语言:javascript
运行
AI代码解释
复制
<appSettings>
    <add key="Location" value="Test"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>

查看:

代码语言:javascript
运行
AI代码解释
复制
<script src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
    <script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js"></script>


<div>
        <%= Html.TextBoxFor(c => c.CompanyName, new { style = "width:300px"})%>
        <%=Html.ValidationMessageFor (c=>c.CompanyName) %>
        </div>

如果我将CompanyName保留为空白并试图保存页面,则不会看到任何错误。此外,我在页面源代码中看到了以下内容:

代码语言:javascript
运行
AI代码解释
复制
<div>
<input id="CompanyName" maxlength="40" name="CompanyName" style="width:300px" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="CompanyName" data-valmsg-replace="true"></span>

谁能告诉我我错过了什么吗?

编辑:这里是控制器操作:

代码语言:javascript
运行
AI代码解释
复制
[HttpPost]
public ActionResult Save(EmailModel model)
{
    if (ModelState.IsValid)
    {
        Helper.Save(model);
        return Json(JsonEnvelope.Succes());
    }
    return View(model);
}
EN

回答 2

Stack Overflow用户

发布于 2012-05-17 10:41:52

您需要在控制器中检查ModelState.IsValid。如果状态无效(因此为false),则应将视图模型返回到视图。

就像这样:

代码语言:javascript
运行
AI代码解释
复制
[HttpPost]
public ActionResult Save(EmailModel model)
{
    if (ModelState.IsValid)
    {
        Helper.Save(model);

        return Json(JsonEnvelope.Succes());
    }

    return View(model);
}

还有一些你在帖子中没有提到的事情要核实:

确保您也包含了jquery.validate.

  • Make库,而不仅仅是确保将输入元素放置在表单中,并且表单被设置为post
票数 0
EN

Stack Overflow用户

发布于 2012-05-18 10:29:25

这听起来很奇怪,但它对我有效,更改验证行的顺序,如下所示:

代码语言:javascript
运行
AI代码解释
复制
[DataMember(EmitDefaultValue = false)] 
[StringLength(40, ErrorMessage = "Must be under 40 characters")]
[Required(ErrorMessage="CompanyName is Required")]

或者像这样:

代码语言:javascript
运行
AI代码解释
复制
[Required(ErrorMessage="CompanyName is Required")]
[DataMember(EmitDefaultValue = false)] 
[StringLength(40, ErrorMessage = "Must be under 40 characters")]

我不记得为什么,我想这是个虫子,试着告诉我们;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10641583

复制
相关文章
如何跳过MVC中的ValidateRequest验证
MVC中客户端传值到服务器端时,如果客户端字符串含有“</>”字样时就会报“检测到有潜在危险”的错误。
全栈程序员站长
2022/08/30
1.3K0
ASP.NET MVC的客户端验证:jQuery验证在Model验证中的实现
在简单了解了Unobtrusive JavaScript形式的验证在jQuery中的编程方式之后,我们来介绍ASP.NET MVC是如何利用它实现客户端验证的。服务端验证最终实现在相应的ModelValidator中,而最终的验证规则定义在相应的ValidationAttribute中;而客户端验证规则通过HtmlHelper<TModel>相应的扩展方法(比如TextBoxFor、EditorFor和EdidtorForModel等)出现在生成的被验证HTML元素中。毫无疑问,服务端验证和客户端验证必须采
蒋金楠
2018/01/15
7.3K0
ASP.NET MVC5中的Model验证
Model验证是ASP.NET MVC中的重要部分,它主要用于判断输入的数据类型及值是否符合我们设定的规则,这篇文章就介绍下ASP.NET MVC中Model验证的几种方式。
雪飞鸿
2018/09/05
1.6K0
ASP.NET MVC5中的Model验证
修复spring mvc拦截器不起作用的bug
今天在做springmvc登录过滤拦截器的时候,发现虽然写了mvc:exclude-mapping,但是login依旧走了拦截器,很是费解,后来请教了负责人,原来是前面少了一个/
Meet相识
2018/09/12
2.1K0
laravel 中数据验证
相关验证参考文档:https://blog.csdn.net/qq_35641923/article/details/79174555
句小芒
2022/12/29
1.3K0
ASP.NET MVC的客户端验证:jQuery的验证
之前我们一直讨论的Model验证仅限于服务端验证,即在Web服务器根据相应的规则对请求数据实施验证。如果我们能够在客户端(浏览器)对用户输入的数据先进行验证,这样会减少针对服务器请求的频率,从而缓解W
蒋金楠
2018/01/15
8.3K0
ASP.NET MVC的客户端验证:jQuery的验证
双重保险——前端bootstrapValidator验证+后台MVC模型验证
我们在前端使用BoostrapValidator插件验证最基本的格式要求问题,同时在后台中,使用MVC特有的模型验证来做双重保险。对于boostrapValidator我就不说了,具体请看《bootstrap登入注册时表单验证实现》。而对于后端的模型验证这就是MVC的知识了,我也是好久以前研究过,现在都忘得差不多了,临时捡起来了,在这里我就详细说说。首先是我们的前端Razor页面也就是我们的cshtml页面需要引入实体类,假设实体类是UserModel类,它记录了最基本的用户名,密码,邮箱等。在前端的cshtml页面中我们引用这个类,然后就是正常的html结合bootstrap样式的前端代码编写,但是在这里建议使用UserModel类中的字段来命令标签的id和name属性,如果乱取名,MVC框架怎么来识别是哪个类?因此在这里建议id和name值都取作UserModel类的字段值。而后在标记了[HttpPost]的Action方法中,将UserModel用作参数传递进来,你就会发现前端的值已经绑定在了相应的字段上了。那么怎么来做后端验证呢?这就需要用到注解属性了。我们在UserModel类上根据我们的需要标注[Required][RegularExpression()]等注解属性。然后在action方法中使用:
Ryan_OVO
2023/10/19
1740
ASP.NET MVC2 数据模型验证类库:MVC Foolproof Validation
MVC Foolproof Validation是一个数据模型类库扩展。 操作符验证 1: public class SignUpViewModel 2: { 3: [Required] 4: public string Password { get; set; } 5:  6: [EqualTo("Password", ErrorMessage="Passwords do not match.")] 7: public strin
张善友
2018/01/19
8470
MVC中的M(model)、MVC总结
这篇博客的源代码是我的正在写的在线简历,博客是继上一篇写的 完整代码(项目暂未完成) 预览地址
代码之风
2018/10/31
1.8K0
asp.net MVC 验证注解
对于Web系统,对于用户的输入验证是必须的。不仅需要在客户端对用户的输入进行验证,在服务端也需要对用户的执行进行验证。 asp.net MVC中对于验证提供了一种注解机制。注解是一种通用机制,可以用来向框架注入元数据,同时框架不只驱动元数据的验证,还可以生产显示和编辑模型的HTML标记时使用元数据。 1.Required Required 是MVC提供的一种注解。当属性中一个是null或空时,Required特性将会引发一个验证错误。 [Required(ErrorMessage="")] 2.String
水击三千
2018/02/27
1.9K0
mvc中的OutputCache[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 mvc4中有一个标记属性OutputCache,用来对ActionResult结果进行缓存,如何理解呢?概括地说,就是当你的请求参数没有发生变化时,直接从缓存
全栈程序员站长
2022/09/07
4430
asp.net mvc 验证码
效果图 验证码类 namespace QJW.VerifyCode { //用法: //public FileContentResult CreateValidate() //
阿炬
2018/05/11
3.4K0
WordPress中的jQuery库不起作用的相关问题
WordPress 中的jQuery 库问题曾经困扰了我一段时间。如果仅仅加载WordPress 自带的jQuery 库,在使用一些jQuery 插件的时候明明是代码没有错误,但就是不起作用,该有的效果不能实现;但加载了原版的jQuery 库却又可以了,这样一来却同时加载了两个jQuery 库,网页速度拖慢了而且根本没有必要。 后来才了解到:为了防止与其他 JS 库(如 YUI)冲突,WordPress 内置 jQuery 库的末尾都在原版的基础上加入了 jQuery.noConflict()这个东东,以至
Jeff
2018/01/19
4.3K0
SpringCloudGateWay中跨域配置不起作用
👨‍💻个人主页: 才疏学浅的木子 🙇‍♂️ 本人也在学习阶段如若发现问题,请告知非常感谢 🙇‍♂️ 📒 本文来自专栏: 问题(BUG)集合 🌈 每日一语:纯纯降智的我 🌈 问题描述 SpringCloudGateWay中跨域配置不起作用 使用filter @Component public class CORSFilter implements Filter{ @Override public void doFilter(ServletRequest request, Serv
才疏学浅的木子
2022/11/13
1.4K0
SpringCloudGateWay中跨域配置不起作用
MVC中的查询语句
查询在MVC中做项目必不可少的,数据的新增、修改、删除都离不开查询。查询分为单表查询和多表查询两种(目前所学到的),单表查询是比较简单的,而多表就是比单表多了个联表,其他的好像都差不多。
PHY_68
2020/09/16
2K0
MVC中的查询语句
通过扩展改善ASP.NET MVC的验证机制[实现篇]
在《使用篇》中我们谈到扩展的验证编程方式,并且演示了本解决方案的三大特性:消息提供机制的分离、多语言的支持和多验证规则的支持,我们现在来看看这样的验证解决方案最终是如何实现的。 目录: 一、为验证创建一个上下文:ValidatorContext 二、通过自定义ActionInvoker在进行操作执行之前初始化上下文 三、为Validator创建基类:ValidatorBaseAttribute 四、通过自定义ModelValidatorProvider
蒋金楠
2018/01/15
7890
通过扩展改善ASP.NET MVC的验证机制[使用篇]
ASP.NET MVC提供一种基于元数据的验证方式是我们可以将相应的验证特性应用到作为Model实体的类型或者属性/字段上,但是这依然具有很多的不足。在这篇文章中,我结合EntLib的VAB(Validation Application Block)的一些思想通过扩展为ASP.NET MVC提供一种更为完善的验证机制。[源代码从这里下载] 目录: 一、扩展旨在解决怎样的验证问题 二、一个简单的消息维护组件 三、多语言的支持 四、基于某个验证规则的验证
蒋金楠
2018/01/15
8460
通过扩展改善ASP.NET MVC的验证机制[使用篇]
jQuery:delegate中select()不起作用的解决方法
jQuery有一个很好用的delegate(事件委派)功能,可以给当前以及将来(动态添加)的元素绑定一个事件处理函数。 比如下面的例子,动态添加一个输入文本框后,我想让所有文本框(不管是不是动态添加的)在获取焦点时,自动转大写。 <!doctype html> <html> <head> <title>delegate测试</title> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery
菩提树下的杨过
2018/01/24
3K0
spring mvc 使用@notNull 注解验证请求参数
在需要验证的非空字段前面加上@NotNull注解(注解还可设置提示语), 如下
全栈程序员站长
2022/06/27
1.6K0
spring mvc 使用@notNull 注解验证请求参数
为什么 strace 在 Docker 中不起作用?
在编辑“容器如何工作”爱好者杂志的能力页面时,我想试着解释一下为什么 strace 在 Docker 容器中无法工作。
用户8639654
2021/09/18
7K0

相似问题

MVC中的验证不起作用

16

MVC中的数据验证

31

mvc中的远程验证不起作用

11

ASP.NET MVC数据验证不起作用

35

MVC验证不起作用

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档