问题标签 [model-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
519 浏览

asp.net-mvc-3 - 布局视图中的多个局部视图和一个提交按钮

我不确定这是否是正确的方法。在我的搜索中,只发现了多个局部视图和一个提交按钮,但在布局中没有。

我有树不同的视图,每个视图都有自己的模型,具有相同的 _ViewStart.cshtml -> _Layout.cshtml(MVC 约定)。这是第一个控件:

这 3 个视图非常通用,但我不希望其中有提交按钮。

同样在 _Layout.cshtml 我有一个部分视图,其中包含 3 个视图的通用验证代码:

我也不想要 _CommonValidation 视图中的提交按钮。

可以使用 Layout.cshtml 中的“ONLY ONE BUTTON”提交按钮来验证部分 _CommonValidation 和 RenderBody() 视图的模型?在 _Layout.cshtml 视图中包含强类型的部分视图是一种好习惯吗?我是 MVC 3 的新手,所以我不知道该采取什么方向...... JavaScripts,HTML Helpers 也许......谢谢

0 投票
2 回答
1166 浏览

.net - .Net 数据注释和模型层次结构

每个人!我对实现一段代码以在 asp.net mvc 3 中使用具有不同必填字段的模型进行工作的代码感到困惑 (6)。我有一个模型:

我需要的是动态更改其中所需封地的可能性。经过一番谷歌搜索,这是不可能的,并想到使用模型继承。我的意思是:我有一个这样的基本模型:

其中虚拟属性是可能是或不是必填字段的属性。然后我有几个从基础派生的模型,如下所示:

}

然后我可以在 View 和 Controller 基础模型 BaseOpportunityModel 中使用。但我遇到了以下问题:

  • 验证使用来自 BaseOpportunityModel 的注释属性并忽略派生模型中的属性。

我错了什么?有人可以引导我朝着正确的方向前进或帮助我解决这个问题吗?提前致谢。

0 投票
0 回答
3245 浏览

asp.net-mvc - MVC4:ModelState.IsValid 总是返回 true

我有一个 PartialView,其中包含一个将数据异步发布到我的控制器的表单。如果有效,控制器将添加用户ModelState,如果无效,它将返回带有无效模型的 PartialView。我遇到的问题是ModelState无论如何总是有效的。我可以看到表单正在被正确序列化,并且所有属性DynamicActionUserModel.RegisterModel都被填充。

我不明白为什么会这样,但是模型绑定是否可能因为模型中有模型而不起作用?

这是我的代码...

看法

_User部分视图

动态动作用户模型

控制器

0 投票
1 回答
3015 浏览

c# - 如何将自定义 ModelValidatorProviders 添加到 Web API 项目?

我正在将一些 MVC 代码移动到 Web API,并且我需要更新我的自定义 ModelValidatorProviders。似乎我的验证器可以保持不变,只是它们应该继承 System.Web.Http.Validation 命名空间。

我不知道如何将提供程序添加到 Web API。使用 MVC 时,我可以将以下内容添加到我的 global.asax 中:

如何将自定义提供程序与 Web API 一起使用?

0 投票
2 回答
10678 浏览

c# - 复杂模型/子模型验证 (MVC) 的最佳方法

问题

我知道在 MVC 中有很多方法可以进行模型验证,并且有很多关于这个主题的文档。但是,我不太确定验证模型属性的最佳方法是相同类型“子模型”

请记住以下几点

  • 我仍然想从TryUpdateModel/TryValidateModel方法中获利
  • 这些“子模型”中的每一个都有强类型视图
  • 有一个用于MainModel呈现整体显示视图的类的强类型视图

这可能听起来有点混乱,但我会抛出一些代码来澄清。以以下类为例:

主要型号:

一些子模型:

主模型控制器:

我相信这段代码到目前为止都是有意义的(如果不是这样,请纠正我)因为TryValidateModel()正在验证一个没有ValidationAttribute.

问题出在哪里,哪里是最好的地方,或者什么是最好和最优雅的方式来对不同的验证约束Prop1同时Prop2仍然利用TryValidateModel()而不是用条件语句填充 Edit 方法和ModelState.AddModelError()

通常你可以在SomeSubModel类中有验证属性,但在这种情况下它不起作用,因为每个属性都有不同的约束。

其他选项是MainModel类中可能有自定义验证属性,但在这种情况下它也不起作用,因为SomeSubModel对象直接传递给视图并且在验证时没有对其MainModel对象的引用。

我能想到的唯一剩下的选择是每个属性的 ValidationModel,但我并不是最好的方法。

解决方案

这是我根据@MrMindor 的回答实施的解决方案。

基础 ValidationModel 类:

Prop1 的验证模型

Prop2 的验证模型

行动

0 投票
1 回答
1038 浏览

asp.net-mvc - 在模型验证开始之前在模型上设置审计值

我已经定义了一个具有一些属性的基类,例如:

如果我在我的控制器中创建一个继承自这个基类的模型对象,如下所示:

它永远不会像ModelState.IsValid往常一样返回false,因为在此阶段尚未设置审计属性。

有没有办法在某个常见的地方设置这种值(我试图编写帮助类,但如何获得User?)并且在模型验证开始之前?

或者唯一的选择是使审计属性为 nullabe [不需要]?

编辑:-

尝试了@archil的建议:

哈哈哈............在Get行动中做到这一点

仍然得到:

  • CreatedOn 字段是必需的。
  • UpdatedOn 字段是必需的。
0 投票
4 回答
7036 浏览

c# - 如何禁用 MVC 4 模型验证?

我正在开发一个在 mvc 4 上编写的项目,该项目有几个类似向导的行为实例——通过相同的半填充模型的少数视图链。从第二个视图开始,控件最初显示为无效(这是逻辑模型,传递给控制器​​方法的相应属性为空)。当前 ModelState.Clear(); 使用了解决方案,但将其放入每个方法中,模型作为参数看起来很难看。与此处找到的方法相同在 Asp.Net MVC 中禁用模型验证

项目有太多(超过 100 个)模型类,无法手动注册每个模型类。

是否有更简单的方法(可能是 .config 中的键)完全关闭模型验证?

0 投票
1 回答
90 浏览

asp.net-mvc-3 - 本地化模型验证在 ie < 9 中不起作用

我在我的 mvc 3 应用程序中使用本地化模型验证。我使用Required 属性和错误消息资源做到了这一点。这适用于几乎所有浏览器,除了 7 和 8。您可以在下面找到我使用的示例代码。

示例代码:

0 投票
1 回答
278 浏览

c# - MVC 选择性模型验证

在我的模型中,我有一个 HomeAddress 和 BillingAddress 类型为 location 的人:

我正在寻找一种优雅的方法来仅在必需的属性 HomeAddress 上验证“必需的”属性。我使用的是普通的 componentmodel 属性并内置了 MVC 的模型验证。所以我正在寻找的是一个属性,它将检查位置是否在 Person.HomeAddress 或 .BillingAddress 中,并且仅在第一种情况下验证。或者我应该改变我的设计并使绑定地址为 NULL,以防输入的信息不足?

0 投票
8 回答
23743 浏览

c# - 数组必须包含 1 个元素

我有以下课程:

我想在上面有一个数据注释,TaskDescriptions以便数组必须包含至少一个元素?很像[Required]。这可能吗?