asp.net-mvc – 在视图ASP.NET MVC 4中禁用所需的特定于验证的字
发布时间:2020-12-16 07:24:10 所属栏目:asp.Net 来源:网络整理
导读:如果有人能给我一些暗示我会很感激. 我正在寻找一段时间,我甚至发现了一个帖子,我认为它可以解决我的问题,但事实并非如此. Disable Required validation attribute under certain circumstances 基本上我有一个简单的User.cs模型,其中我有用户名,FirstName,L
如果有人能给我一些暗示我会很感激.
我正在寻找一段时间,我甚至发现了一个帖子,我认为它可以解决我的问题,但事实并非如此. Disable Required validation attribute under certain circumstances 基本上我有一个简单的User.cs模型,其中我有用户名,FirstName,LastName和SignupDate 所有都有必要的注释,我想解决这个问题而不删除必需的标记. 生成视图后,我在视图中删除SignupDate的html代码: <div class="editor-label"> @Html.LabelFor(model => model.SignupDate) </div> <div class="editor-field"> @Html.EditorFor(model => model.SignupDate) @Html.ValidationMessageFor(model => model.SignupDate) </div> 当我点击提交它不起作用. 如果我在其他帖子中建议的话 <div class="editor-label"> @Html.LabelFor(model => model.SignupDate) </div> <div class="editor-field"> @Html.TexBoxFor(model => model.SignupDate,new { data_val = false }) </div> 如果我把它留空也不起作用.. 有什么建议?谢谢!! 解决方法
您可以在视图上禁用客户端验证,并删除模型状态中的错误,以查找您不想验证该值的实体.
在我的情况下,我只想在用户键入密码时更改密码.使用Html.HiddenFor不是一个好方法,因为每次都会向客户端发送密码,并且不应发送密码. 我所做的是禁用视图上的客户端验证 @model MyProject.Models.ExistingModelWithRequiredFields @{ ViewBag.Title = "Edit"; Html.EnableClientValidation(false); } 这允许我提交表格,即使是空值.请注意,所有客户端验证都会被忽略,但服务器验证仍会运行,因此您需要清除那些不需要执行的验证.为此,请转到控制器中的操作并删除所需的每个属性的错误 public ActionResult Edit(ExistingModelWithRequiredFields updatedModel) { var valueToClean = ModelState["RequiredPropertyName"]; valueToClean.Errors.Clear(); if(ModelState.IsValid) { ... //Optionally you could run validations again if(TryValidateModel(updatedModel) { ... } ... } ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net中的基本形式认证安全性如何?
- asp.net-mvc – 以任何方式配置配置visual studi
- 在asp.net中启动Updatepanel后,Javascript无法正
- asp.net-mvc – ASP.NET MVC – 如何获取一个URL
- 将QueryString附加到asp.net核心Anchor Helper T
- asp.net – $.post vs $.ajax
- Asp.NetCoreWebApi - RESTful Api
- ASP.NET通用提供商
- asp.net-mvc – 标准ASP.NET MVC ModelBinder的文
- ASP.NET页面事件 – 在GridView绑定之后发生按钮
热点阅读