问题标签 [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 投票
1 回答
2918 浏览

model-view-controller - 具有多个 ViewModel 的 MVC 3 ModelState.IsValid

假设我有一个由其他 3 个 ViewModel 组成的 ViewModel。一个包含项目列表,另一个包含具有 [Required] 属性的类的实例,然后是另一个其他项目的列表。

如果用户从两个列表之一中的一个项目中进行选择,我不希望第二个对象上的 [Required] 属性导致 ModelState 无效,因为如果用户选择其中一个项目,他们不会需要使用具有 [Required] 属性的项目填写表格。

我怎么解决这个问题?

0 投票
2 回答
9397 浏览

asp.net-mvc - 在 ASP.net MVC 单元测试中访问 ModelState 错误字典中的错误消息

我在操作结果中添加了一个键值对,如下所示:

我在单元测试中有一些像这样的繁琐代码:

当然,只要我只有一个错误,它就可以工作。
我不喜欢facilities.ViewData.ModelState["Error"].Errors.FirstOrDefault().ErrorMessage

有没有更简单的方法可以从该字典中获取值?

0 投票
2 回答
1028 浏览

asp.net - 如何在异步控制器中验证模型状态

我正在尝试使用异步控制器,但无法弄清楚如何验证用户输入。

以下是我的控制器中定义的两个异步方法。我应该在 SearchAsync 方法或 SearchCompleted 方法中检查 ModelState.IsValid。如果 SearchAsync 那么将如何返回视图结果,因为它的返回类型是 void。如果 SearchCompleted 那么该方法将如何知道 searchForm 参数。

0 投票
1 回答
468 浏览

jquery - 在 asp.net-mvc 中,当从 PartialView() 迁移到 Json 响应时 - 我如何显示 ModelState 验证错误?

我有 asp.net-mvc 网站,我们从在服务器上使用 PartialView() 迁移了一个弹出窗口,只返回 Json() 响应(并在客户端进行绑定)。在这种情况下,它似乎快了大约 10 倍,这很棒。

我遇到的一个问题是现有代码大量利用 ModelState 进行验证和 UI 突出显示问题。

如果我现在只是从服务器接收 Json() 响应,是否有建议的方法来进行验证。

特别是: 1. 将 ModelState 错误返回到 Gui 的首选方法是什么(并获得与使用 asp.net-mvc modelstate 开箱即用的相同的红色突出显示和绑定。2. 我应该仍然使用 modelstate 还是 ditch它是另一个完整的解决方案。 3. 在此迁移过程中需要担心的任何其他问题。

0 投票
4 回答
172436 浏览

asp.net-mvc-2 - ModelState.AddModelError - 如何添加不属于属性的错误?

我正在检查我的数据库Create(FooViewModel fvm){...}以查看fvm.prop1和是否fvm.prop2已经存在于该组合中;如果是这样,我想在模型状态中添加一个错误,然后返回整个视图。我试过了:

...但是我没有在 中显示错误Html.ValidationSummary,这是我认为它们会出现的地方。我怀疑“模型”不是正确的键,但我无法在谷歌中找到任何东西。

0 投票
1 回答
13462 浏览

asp.net-mvc - 自定义模型绑定、模型状态和数据注释

我有一些关于自定义模型绑定、模型状态和数据注释的问题。

1)如果我的模型上有数据注释,在自定义模型绑定器中进行验证是否多余,因为这就是我认为数据注释的意义所在。

2)为什么我的控制器将模型状态视为有效,即使它不是,主要是我将 Name 属性设置为 null 或太短。

3) 是否可以将自定义模型绑定器视为构造方法,因为它们让我想起了这一点。

首先是我的模型。

然后我使用自定义模型绑定器来绑定模型的一些属性。请不要介意它只是试图让它运行然后重构它是快速和肮脏的。

现在我的控制器动作。

编辑

我在另一个 stackoverflow 问题上找到了一些代码,但我不确定在什么时候我会将以下值注入到这个可能的解决方案中。

创建新对象时我想注入的内容:

如何将上述代码放入以下内容(可能的解决方案):

0 投票
0 回答
1169 浏览

javascript - ModelState.IsValid fails to validate!

So I have a simple class which I use to send a Contact Form email.

The above is my class and my controller is as follows

For some reason the ModelState.IsValid returns as true even though I can look into my EnquiryEmail object and see the nulls against values which have a "Required" validation against them.

Look into the ModelState.IsValid shows the 4 values -the Nulls are actually displayed as empty strings under the property named "AttemptedValues". which im not sure if thats a problem here or just a thing ModeState does!

Either way its not validating correctly. Any Ideas what it could be?

0 投票
3 回答
6791 浏览

asp.net-mvc - 将 ModelState 错误复制到 TempData 并在视图中显示它们

我的大多数操作方法在成功时返回 PartialViews,在失败时返回 RedirectToAction 结果。为此,我想将模型状态错误复制到 TempData 中,以便将它们显示给用户。我已经阅读了关于 SO 和一些外部链接的几个问题,但没有一个对我有用......我正在用ModelStateToTempDataMvcContrib 的属性装饰 ActionMethod,然后在视图中显示如下:(这只是一个原型)

我没有显示错误本身,而是不断得到System.Web.Mvc.ValueProviderResult. 我知道这都是错误的,最终我想将模型状态错误过滤到 TempData 中的字典中,但现在我只想让错误字符串显示在视图中。

PS:我尝试在没有 MvcContrib 属性的情况下手动执行此操作,并且得到了相同的结果。但我更喜欢使用自己的代码,这样我就可以更好地控制整个问题。

有什么建议么?

0 投票
2 回答
5143 浏览

jquery - How to use MVC ajax and PartialViews while maintaining ModelState errors

I'm using MVC3. I have a form, that on submit, returns a PartialView that updates my page. The question/issue is -- how do I show ModelState errors and keep my form values in-tact when there is an error?

It seems this question has been asked before (see my references below), but I haven't yet found a complete answer/solution, but I'm confused...

My very simple Model

My View looks like this:

And my PartialView just spits back the output:

And my Controller Action method like this

The issue is how do I return back the View with the ModelState errors?

In the links I provided, there is talk about returning json with status codes so that the client-side can detect an error versus success condition (i.e. RenderPartialViewToString). But I don't really understand how this all gets hookedup / consumed.

e.g. If success, just display the partial view? If error, do we just refresh the page with the updated ModelState? Can someone link together the pieces and show an end-to-end example, namely the View/jquery ajax calls?

Aside: As an alternate implementation, I used something similar to this approach, and got it working, but I don't know... it just seems wrong and as I'm refreshing more of the page than I want to on a success scenario.

http://jvance.com/blog/2010/02/20/MakingAnAjaxFormWithJQueryInASPdotNETMVC.xhtml

e.g. My Controller looks like this, where my PartialViews now contain my "form" code in both Success and Error versions.

Thanks

0 投票
1 回答
207 浏览

asp.net-mvc - c# mvc结构-简单的问题

我这里需要一些信息。我是 MVC 的新手,因此对你们来说,我认为这将是一个容易回答的问题。我有以下结构:

控制器.cs

最后,在 PageMain 视图中,我有:

好的,现在,我的问题是:这样的结构是否有效(这里所说的有效是指结构是否良好或有更好的方法)?以及如何ModelState.AddModelError()在部分视图“Partial1”中的方法中达到异常?

如果您感到困惑,总结一下:

  • 在 PageMain 中,有一个根据 url-parameter 构造的表。实际上,它是在另一个局部视图中构造的,但显示在 PageMain
  • 当我编辑表格时,表单将我重定向到 FormAction,执行代码以编辑数据库
  • 最后,如果有错误,用户仍然在 FormAction 中,但是在这个页面中使用的 View 仍然是 PageMain,我没有为这个页面设置不同的视图,因为它就像两次构建同一个页面一样。我的意思是,只包含一个显示我不想创建另一个视图的错误的局部视图。相反,我试图用一些 if - else 逻辑使部分视图可见,仅在出现一些错误的情况下