问题标签 [modelstate]
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.
asp.net-mvc-3 - 检查动作过滤器中的 ModelState
我可以ModelState.IsValid
在方法中签入我的自定义操作过滤器OnActionExecuting
吗?
asp.net-mvc-3 - MVC3 删除 ModelState 错误
我有一种情况,我正在上传用户从他的本地文件系统中选择的图像。在我看来,我的表单基本上有两个提交按钮。一个用于正常提交表单,并执行所有验证。第二个仅用于上传图像,在这种情况下我还不想验证。
我设法通过给我的“上传图像”提交按钮一个“样式名称取消”的类值来关闭客户端验证,所以
现在,当我回帖时,我的模型有一个属性 UploadImageButton,当单击此按钮时,它会填充此属性(输入的名称与属性匹配)。这样,我就知道表单是由我真正的提交按钮还是由 UploadImageButton 提交的。
我的问题是……如何关闭服务器端验证?我不希望在用户单击此按钮时显示验证摘要信息。我知道你可以使用这个添加自定义模型错误
我正在寻找消除模型错误的方法。这可能吗?
编辑:
这是我想出的:
modelstate - 没有实体框架的asp.net mvc
我正在学习 asp.net mvc,并通过了一个很好的教程来演示它。本教程还使用了实体框架。
我们有自己的数据访问类,我必须使用它。对于我需要做些什么来弥合我们的类和 MVC 框架之间的差距,我有点困惑。例如,在教程中,在 MovieController.cs 文件中,有一个 Edit 方法,如下所示:
如果我不使用实体框架,它会是什么样子?我是否仍需要使用 ModelState.IsValid 并像完成状态一样保存状态
请指教。在不使用实体框架的情况下使用 asp.net mvc 的清晰书面示例会很棒。
我需要知道的是状态在这里扮演什么角色以及它是强制使用还是只是实体框架运行方式的一部分。
我会将其重写为:
其中 myDBObject 是我的自定义数据库访问对象。
c# - 类级别和属性级别的 ASP.Net MVC 2 自定义属性可以同时处于活动状态吗?
我正在开发 asp.net mvc 2 Web 应用程序。我有具有 3 个属性的模型:
我有一个“必需的”属性属性和一个类级别的属性:
当我在视图上发布表单并且未输入 CountryID 时,在 ModelState 字典中存在关于该问题的错误。其他属性被忽略(“IsCityInCountry”)。当我选择不在所选国家/地区的 CountryID 和 CityID 时,我会收到相应的验证消息,并且 ModelState 有另一个键(即“”)。我知道优势有属性属性,然后是类属性。我的问题; 无论涉及哪种属性(类或属性属性),有什么方法可以同时获取所有验证消息?提前致谢。
asp.net-mvc - 使用 TempData 的问题
我正在使用 TempData 为从 ChildAction 呈现的表单保留 ModelState 错误。该表单允许用户在博客文章上发表评论。如果 ModelState 无效,则将错误复制到 TempData,然后我重定向到我的ShowPost
操作,该操作通过 ChildAction 显示评论表单,并包含验证错误。
我担心的是,我实际上在将 ModelState 错误保存到 TempData 和在 ChildAction 中重新显示它们之间进行了两次重定向。这是因为在我的ShowPost
操作中,我还在检查是否存在与当前帖子匹配的有效 slug,然后如果它丢失/不正确,则重定向以包含该 slug。这意味着如果用户发表评论,他们会发布到:
这将重定向到:
然后重定向到:
在显示评论错误之前。这在我的测试服务器上对我来说工作正常,但是我会在第二次重定向时遇到任何特殊问题吗?我问是因为我读过的帖子/问题表明 TempData 需要在重定向后直接使用。如果不是,数据可能会在请求之间丢失,我想知道我的第二次重定向是否会导致这种情况。
asp.net - 为什么在没有 ModelState.Remove 的情况下使用 TryUpdateModel 更新时排除模型属性不起作用
我正在尝试通过在我的控制器 Action 上使用以下代码排除一些属性来更新模型:
当我尝试更新我的模型时,它会将我重定向到我的编辑视图并显示一条错误消息,指出该BoardAbbr
字段是必需的,如果我需要更新BoardAbbr
字段,这是完全合法的。但是正如您所看到的,我排除了一些带有以下代码的字段,并且BoardAbbr
是其中之一:
然后我把下面的代码放在TryUpdateModel
方法之前,它就像一个魅力:
令我困扰的是,要么我做错了什么,要么框架内部构建了一些错误。我敢打赌,第一个是这里的问题。
为什么在没有更新的情况下排除模型属性不TryUpdateModel
工作ModelState.Remove
?
老实说,我没有深入研究,直接来这里向你们喊这个问题。
asp.net-mvc - 如果 ModelState 说该字段无效,则清除字段值
ModelState
如果显示字段无效,我想清除模型中字段的提交值。
这是我到目前为止所取得的成果,但无法在模型中绑定价值的关键。有什么建议么?
ajax - ModelState无效时提交数据后的Ajax表单和UpdateTargetId
在我看来,我有两个部分观点。
- 第一个部分视图(PV1):用户可以在文本框中输入项目并通过 ajax 表单提交。
- 第二部分视图(PV2):用户可以看到以前提交的项目列表。
PV1UpdateTargetId
在 PV2 上的 div 上使用,因为我们想用新添加的项目更新我们的列表。
当 PV1 上提交的项目有效时,一切正常。ModelState.IsValid == false
提交ajax表单时不起作用。它不起作用,因为 UpdateTargetId 位于 PV2 上,我需要更新 PV1 以显示 ModelState 错误。所以我们在 PV2 上遇到了 PV1 的副本!
下面是关于类似问题的另一篇 stackoverflow 帖子,但未提供任何解决方案。
如果 ModelState 无效,ASP.NET MVC AJAX 更改 UpdateTargetId
我认为Json替代方案可能是一种解决方案,但我想知道我们是否可以调整标准的Ajax 表单方法来满足我们的需求?
c# - Mvc ModelState KeyFor 属性
到目前为止,每当需要进行一些自定义验证或对 ModelState 进行任何摆弄时,我都必须依赖魔术字符串(反映属性名称)。肯定有更好的方法。
假设您有一个带有 2 个提交按钮的表单。您已经通过添加必需属性设置了验证规则:
这将始终验证这两个字段。但是假设我已经为上述模型的显示和编辑器添加了两个按钮。按钮一只需要ValueOne,按钮二只需要ValueTwo。
不是很漂亮,我知道但是......我的牛肉是用魔术字符串“ValueOne”和“ValueTwo”。还有清除错误的方式。有没有办法生成这些密钥?我正在寻找类似的东西:
然后是一个逻辑扩展:
在我开始重新发明轮子之前 - 是否已经在某个地方隐藏了这样的东西?
在你问之前,我通常定义静态类 SubmitActions,包含表示提交按钮名称的常量字符串。不,我不能把它分成多种形式,因为视图是渲染的。
感谢您的任何建议。
c# - 测试 ModelState 在 asp.net mvc 中始终有效
在测试我的控制器的操作时,ModelState 始终有效。
还有我的控制器。
并测试:
为什么当产品没有名称、描述和价格时模型状态有效?