我一直在玩弄的ASP.NET 视框架和一件事情是真的很困惑我是如何我想做的服务器验证的发布形式的数据。我想我不后回到同一网址,但是,如果我不,我怎么重新显示的形式输入的数据和错误消息?此外,应该在哪里验证的逻辑去吗?在模型或控制器吗?这似乎是少数几个区域网络的形式是强得多(我错过了验证控件)。

有帮助吗?

解决方案

你可能想看看ScottGu的最新员额ASP.Net 上一个5.它走过验证样本,这是非常有意思:

http://weblogs.asp.net/scottgu/archive/2008/09/02/asp-net-mvc-preview-5-and-form-posting-scenarios.aspx

其他提示

这里有一个概览的流动视:

  1. 新呈现你的"新的"看法含有一种形式,供用户填写
    • 用户填写形式和发布,以创建
    • 该员额是由到建立行动控制器上
    • 在你行动的方法,更新型的数据张贴。
    • 你的模型应验证本身。
    • 你的控制器,应该阅读,如果该模型是有效的。
    • 如果该模型是有效的,保存于数据库中。重定向到/显示呈现的显示的看你的对象。
    • 如果模型就是无效的,保存形式的价值和错误的消息在TempData,并重定向到新的行动。填你的表格领域的数据TempData,并显示错误信息(s)。

验证框架,将帮助你在这一进程。此外,我认为ASP.NET 视的团队是规划一个验证框架的下一个预览.

我可以告诉每个人都是仍在试图找出的"标准"的方式这样做。这说肯定检查了菲尔*哈克和斯科特*格思里的最新员额上的视和你会发现一些有趣的信息如何,他们做到了。当我还是只是在玩弄我自己我创建了一个ModelBinder的LinqToSql数据类,我已经产生。你可以检查出来这个职位找出如何把一个基本ModelBinder:

ASP.Net 视模式粘合剂

在你行动如果您已经创造了一个"产品"ModelBinder你只是声明的行动,像这样:

公共ActionResult新的(产品prod)

和模式粘合剂将采取的分配公布的数据的对象的性质,只要你已经建立它的权利。

之后,在你的获取名()方法可以实现的任何验证你想要的,是否使用异常的,regex的,或者任何你可以打个电话,如:

(ModelStateDictionary_name).AddModelError("form_element_id","entered_value","error_message");

然后你可以只是扔一个 <%=Html。ValidationSummary()%>在你看来显示你所有的错误。

对客户的侧验证我只是用!之后你会得到一个基本的样品设置了虽然你可以开始做一些有趣的事情相结合的所有部分意见和阿贾克斯的电话。

你有没有看过这个吗?http://www.codeplex.com/MvcValidatorToolkit

引自网页

验证工具包提供了一组 的验证程序,为新的ASP.NET 视 框架验证HTML形式上的 客户和服务器的端使用 验证集。

我怕有人更软-精明比我会讲到这里的建筑你应该把事情。

我只是学习的视框架过所以我不知道如何离开这,但是从我的理解你会有一个形式上看,如编辑。aspx。这种形式会随后向控制器到另一个行动方法,诸如更新()通过在内容的形式设置在编辑。aspx作的参数。

Update(int id, string name, string foo)

你可以做的验证在那方法。如果所有的是确定的,

return View("Item", yourObject)

那里是 城堡。组成。验证程序 模块在城堡的项目。这是非常敏捷并且强大.它产生的验证规则基于模型的属性(或任何其他来源的)和甚至能够产生JS验证使用jQuery的原型验证,fValidate和其他。当然这是明智的,抽象的验证程序远落后IValidationEngine接口。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top