首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置FubuMVC验证

如何设置FubuMVC验证
EN

Stack Overflow用户
提问于 2011-07-20 16:50:43
回答 1查看 673关注 0票数 3

我正在尝试学习FubuMVC,并且一直在验证我的输入模型。我想要完成的是后验证-重定向。也就是说,如果模型无效,则重定向到相同的视图并显示错误。我在我的模型上使用属性。

另外,我如何指定我自己的错误消息,即本地化?

我用的是nuget最新的Fubu包。

我的注册表如下所示:

代码语言:javascript
复制
IncludeDiagnostics(true);
Applies.ToThisAssembly();

Actions.IncludeClassesSuffixedWithController();

Routes
    .HomeIs<HomeController>(x => x.Index())
    .IgnoreControllerNamesEntirely()
    .IgnoreMethodsNamed("Index")
    .IgnoreMethodsNamed("Query")
    .IgnoreMethodsNamed("Command")
    .IgnoreNamespaceText("Features")
    .IgnoreMethodSuffix("Html")
    .RootAtAssemblyNamespace()
    .ConstrainToHttpMethod(x => x.Method.Name.EndsWith("Command"), "POST")
    .ConstrainToHttpMethod(x => x.Method.Name.EndsWith("Query"), "GET");

this.UseSpark();
this.Validation();

HtmlConvention<SampleHtmlConventions>();
Views.TryToAttachWithDefaultConventions();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-24 11:42:32

FubuMVC.Validation包实际上只是如何使用FubuValidation的一个例子,因为我们还没有为所有的边缘情况构建它。话虽如此,让我解释一下它是如何工作的,这样我们就可以看看你是否可以使用它,或者你是否应该手把手地处理自己的验证行为。

ValidationBehavior使用IValidationFailureHandler接口来“处理”验证失败。当行为触发时,从FubuValidation构建的通知对象被推入IFubuRequest,然后调用处理程序。

默认情况下,对于所有验证失败,ValidationFailureHandler类都是绑定的。这委托给IValidationFailurePolicy来确定用于给定模型类型的策略(请参阅我关于策略的帖子以了解其工作原理)。

验证扩展方法有一个重载,它为配置这些策略提供了一个微dsl:

代码语言:javascript
复制
this.Validation(x => { 
    x.Failures.... 
}); 

在这里,您可以1)通过ApplyPolicy方法应用自定义策略,或者2)通过IfModel方法使用基于谓词的配置方法。

如果您使用谓词路由(例如,x.Failures.IfModelIs()),则可以告诉FubuMVC.Validation使用FubuContinuations重定向或转移到另一个行为链。如果你正在寻找这方面的指导,Rex最近发布了关于FubuContinuations的文章(http://rexflex.net/2011/07/fubumvc-fubucontinuation/)。

希望这对你有所帮助,如果我解释得不够充分,你可以问我。

乔希

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6759287

复制
相关文章

相似问题

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