我一直在玩ASP.NET MVC框架,让我感到困惑的一件事就是我打算如何对发布的表单数据进行服务器端验证.我认为我不会回发到同一个网址,但如果不这样做,我如何使用输入的数据和错误消息重新显示表单?此外,验证逻辑应该在哪里?在模型或控制器?这似乎是Web表单更强大的少数领域之一(我错过了验证控件).
以下是MVC中流程的概述:
/ new - 渲染包含用户填写表单的"新"视图
用户填写表单并将其发布到/ create
帖子将路由到控制器上的"创建"操作
在您的操作方法中,使用已发布的数据更新模型.
您的模型应该验证自己.
如果模型有效,您的控制器应该读取.
如果模型有效,请将其保存到数据库.重定向到/ show以呈现对象的show View.
如果模型无效,请将表单值和错误消息保存在TempData中,然后再次重定向到"新建"操作.使用TempData中的数据填写表单字段并显示错误消息.
验证框架将帮助您完成此过程.此外,我认为ASP.NET MVC团队正在为下一个预览计划验证框架.