首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC: ModelState与ModelStateDictionary

ASP.NET MVC: ModelState与ModelStateDictionary
EN

Stack Overflow用户
提问于 2009-08-18 05:06:29
回答 6查看 19.6K关注 0票数 14

我有一个服务,它有一个在触发某个控制器方法时调用的方法。

我的服务返回一个自定义结果对象PlacementResult,在该对象中,我希望将可能发生的错误(验证)传递给控制器方法。

PlacementResult是否应该有一个ModelState或ModelStateDictionary来将错误传递回控制器(并最终查看)?我该怎么把这些串在一起?

最后,如何将ModelState/ModelStateDictionary (无论您告诉我选择哪个)重新放到视图中(突出显示适当的文本框,显示错误消息等等)?

谢谢!

EN

回答 6

Stack Overflow用户

发布于 2010-08-31 05:23:56

这是一个很好的链接,它展示了服务如何执行验证并将结果传递给控制器:

http://www.asp.net/mvc/tutorials/validating-with-a-service-layer-cs (固定链路)

票数 3
EN

Stack Overflow用户

发布于 2009-08-18 13:45:42

不,您不希望向结果类型中添加ModelStateDictionary。控制器上已经有一个ModelStateDictionary (在ModelState属性中)。对于结果来说,设置控制器的模型状态是不合适的。这应该在绑定期间或在控制器操作本身内完成。如果需要的话,可以使用自定义模型绑定器。

您的选择可以通过检查控制器的ViewData.ModelState属性来查看模型状态错误。

票数 2
EN

Stack Overflow用户

发布于 2010-03-28 23:28:14

您的PlacementResult应该返回一个字典对象或列表,您应该在每个动作开始时与模型状态合并。

如果您跨出一步,您将注意到控制器模型状态字典包含所有输入字段、它们的值以及与它们相关的错误。您希望在适当的键将PlacementResult错误合并到模型状态字典中。这就是视图引擎如何知道哪些字段要标记为无效。

代码语言:javascript
复制
ModelState.Merge(PlacementResult);
if(ModelState.IsValid)
{
    ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1291895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档