问题标签 [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.

0 投票
2 回答
17540 浏览

c# - 如何将模型状态错误添加到列表中

我有一个使用这样的模型项列表的视图:

当我在服务器端获得此列表时,我会检查这是否是一种类型的项目,它必须具有有效的序列号。如果它是另一种类型,我会检查用户是否在“选中”复选框中打勾。如果这两个都失败了,我想在这一行中添加一个模型状态错误。这样做的最佳方法是什么?

0 投票
1 回答
633 浏览

entity-framework - 如何在桌面应用程序中使用 DataAnnotations

当我们使用EF(fe) viaMVC时,我们可以使用ModelState.IsValid来检测是否model可以传递DataAnnotations元数据。但是如何DataAnnotations在桌面(win-forms / wpf)应用程序中使用元数据?

更多的:

事实上,我想创建一个与ModelState(可以保存与每个相关联的属性和消息的字典)相同的对象。DAL然后,用一个包装validation-layerVL使用的元数据来验证模型,它VL可以在任何项目中使用。我知道我应该使用反射器,但我没有任何经验。感谢任何帮助和建议。

0 投票
2 回答
506 浏览

asp.net-mvc-3 - 字段ID 是必需的。尝试通过 MVC3 添加新对象时出错,ModelStat.IsValid 错误?

我有这个 ViewModel:

在我看来,我有:

当我使用它从数据库更新对象时,控制器操作工作正常:

但是当我尝试添加一个新对象时,ModelState.IsValid失败说需要 KlijentID。 ErrorMessage:"The KlijentID field is required."

我已经检查过了,它被设置为 0,因为它应该是一个新对象。这里有什么问题?

更新: 我试图将此添加到我Application_StartGlobal.asax

结果是我仍然收到验证错误,刚才它说: ErrorMessage: "A value is required."

这有点奇怪,它似乎只是想要这个值真的很糟糕。机器里有鬼?

0 投票
1 回答
3413 浏览

asp.net-mvc-3 - 在 MVC3 中使用 @Html.HiddenFor

我有很多麻烦。我认为 MVC 只是讨厌我。

第一个。我正在使用 Linq,模型是自动生成的。我刚刚使用 [Required] 标签/指令完成了我需要的属性。

第二。我有一个连接两个模型的“大模型”。就像这里解释的那样->视图中的多个模型


当我尝试使用具有空值等属性的模型回发视图时,ModelState.isvalid == false。我认为这很明显,因为我将 [Required] 设置为模型需要的一些属性。把我带到这里的东西来了。

第三。当我尝试使用 @Html.HiddenFor(...) 我的页面不会回发。如果我使用 3 HiddenFor,页面执行 PostBack,但如果我使用 10 HiddenFor,页面将静止不动。它哪儿也不去。

我已经尝试做我知识范围内的所有事情(非常有限,我对 MVC 真的很陌生)。

  • 我试图将这些属性带到视图中并将它们显示出来,就好像它是“详细视图”一样。没有成功。
  • 我试图设置@HiddenFor(model => model.Client)。在 Action 中作为 null 传递。
  • 我尝试过使用这些大量的 HiddenFor。
  • 我试图在隐藏(ClientID)中传递一个 ID 并从数据库中检索对象,但是一旦在操作中,ModelState 将不会“更新”其状态。

我为什么要这样做?我这样做是因为我需要页面在未填充框时显示“必填字段消息”,因此禁止页面在没有数据的情况下回发。我的数据库很好,这些字段是“非空”,所以,我可以从属性中删除 [Required],但我会丢失“必填字段消息”(除了 PostBack 那是我'我试图避免)。

如果有人有答案或答案或其他任何东西,请发布...我要射出我的头了xD

提前致谢...

PS:对不起我的英语......我知道它不好(甚至不正常)。


看法

控制器


编辑2:

我仍在触摸代码,当我评论

其中“PrecioVenta”是小数(18,2),页面确实回发......它显然仍然得到一个 ModelState.isValid == false 因为我已经离开了那个值。

我能做些什么?

“HiddenFor”的哪些原始类型会起作用?还是 .Net Framework 的某些内容无法正确“映射”该数据类型?

0 投票
1 回答
939 浏览

model-view-controller - 如何使用 AddModelError 处理 HttpRequestValidationException 并返回有意义的错误?

我想处理HttpRequestValidationExceptions(例如,当将 html 插入表单字段时)并在提交后将用户返回到页面并显示有意义的错误以突出显示问题。

例如,在登录页面上,如果用户在用户名字段中键入了一些无效字符,那么我想捕获HttpRequestValidationException并将用户返回到登录页面,并突出显示用户名字段。

我可以使用OnException方法捕获从HandleErrorAttribute继承的类中的错误。

有没有办法从这里(或任何其他方式)让Controller * ModelState * 添加错误?

注意:我不想关闭验证或重定向到错误页面。

例如:

提前感谢您能给我的任何帮助!

0 投票
1 回答
5282 浏览

asp.net-mvc - 添加模型状态错误并在重定向到操作后验证

ModelState我对MVC3 中的验证错误消息有疑问。我在我的注册视图@Html.ValidationSummary(false)中显示了DataAnnotations来自我的模型对象的错误消息。然后.. 在我的注册动作控制器中,我有ModelState.IsValid,但在里面if(ModelState.IsValid)我有另一个错误控件,它添加到模型状态,ModelState.AddModelError(string.Empty, "error...")然后我做了一个RedirectToAction,但是添加的消息ModelState根本不显示。

为什么会这样?

0 投票
1 回答
1472 浏览

asp.net - MVC3 远程验证

我目前正在使用 MVC3 设置远程验证,以便在用户选择的用户名已经存在时收到警报。从最重要的部分开始,一切都已设置并正常工作,没有显示错误消息。如果我提交表单,则会在页面刷新并添加相关模型状态错误时显示错误消息。

无论如何用 Json 结果刷新模型验证摘要?

0 投票
3 回答
2409 浏览

c# - ValidationSummary 不与部分视图一起出现

我有这个问题:

我转到一个页面,例如:

这调用了这个动作方法:

此方法中的特定行是:

此视图包含以下行:

调用此操作方法:

到现在为止还挺好?

现在,我在 BidOnAuction 视图中有一个表单,其中有一个按钮。当我单击此按钮时,将调用此操作方法:

此操作方法有一个带有以下几行的 catch 语句:

现在,DetailsLUB 视图和 BidOnAction 视图都包含这一行:

@Html.ValidationSummary(true)

但是,问题是没有任何东西被打印到屏幕上。我究竟做错了什么?

0 投票
1 回答
651 浏览

asp.net-mvc - ASP.NET MVC 3 模型状态

好的,我有一个问题,ModelState错误没有映射到正确的属性。

让我看看我能不能解释一下。

我有一个像这样的 ViewModel:

在我看来,我有一个模型,它有一个我想要的这种类型的集合EditorTemplate。所以它会生成MyViewModels[0].Prop1,MyViewModels[1].Prop1等。

问题是,当我ModelState通过我调用的接口在我的服务层中设置错误时,该接口具有IValidationDictionary模型状态的包装器,它不会将错误附加到视图中的正确行,而是附加到模型的末尾作为Prop1.

编辑

这是 ModelStateWrapper(VB - 对不起!)

0 投票
1 回答
7437 浏览

asp.net - 如何通过控制器操作将 ModelState 设置为 true

正如我们所知,如何ModelState = true;从控制器操作在 asp.net MVC 中设置
ModelState.IsValid 是只读的,即。只持有 getter,所以我们不能像这样强制我们的 modelState 为 true
ModelState.Isvalid = true; //what we can't do

现在请告诉我,将 modelsatate.isvalid 设置为 true 的正确方法是什么