我正在试图弄清楚是否可以使用ServiceStack Razor进行老式的服务器端表单验证。
举例来说:对网址的GET返回带有表单的剃刀模板。当用户POST表单时,请求DTO被验证,如果有错误,则向用户显示相同的表单,重新填充原始值,并以某种方式标记错误字段。另一方面,如果请求DTO有效,则服务会将用户重定向到另一个页面。
这种情况可能吗?
如果是这样,如何实施呢?我认为我必须编写某些过滤器或功能才能使用,但是我想知道什么样的策略需要最少量的编码。
(我理解javascript验证是可能的,但我的问题是具体是否可以通过服务器端验证来往返表单。)
答案 0 :(得分:2)
看一下ss-validation.js,它可以用来根据ServiceStack的ResponseStatus将验证错误应用到你的表单。
因此,我们使用FluentValidation编写所有验证代码服务器端,然后在往返ss-validation上读取ResponseStatus并应用标记。
开箱即用的是假定Bootstrap样式验证,但它很容易修改以满足您的需求,例如:我们修改了显示内联图标工具提示而不是内联/阻止消息,并提供错误摘要。
答案 1 :(得分:1)
在对ServiceStack代码库进行大量研究后,似乎理论上可以实现所需的方案。
代码已包含ModelMetadata
和ModelMetadataProviders
类,并且某些HTML帮助程序从System.Web.Mvc
移植。
可悲的是,这些课程没有完全连线,所以我想这需要大量的工作才能让所有事情都按照人们的预期正常工作。