1

我正在使用 C#、Breeze 和 Durandal 创建一个 SPA,但这个问题不仅仅涉及 SPA。通常,您有要创建和编辑的实体。以这个简单的实体为例:

class Entity {
   [Key]
   public int Id;
   [Required]
   public String FirstName;
   [Required]
   public String LastName;
}

现在您需要为此实体(* 100 个其他实体)创建一个创建和编辑表单。简单的方法是为每个函数创建两个表单。但是,这些表格几乎是完全相同的副本。

如果当有人单击“创建”时不需要任何字段,您可以在数据库中创建实体并将它们重定向到 /edit/$id。但是,您希望为保存编辑的用户使用注释生成的自动验证。

什么是减少表单html和后端代码重复的好方法?简单地让两个视图模型共享相同的视图可能就足够了,但我不确定如何使用 durandal 来做到这一点。

4

1 回答 1

2

在您通过提交保存实体之前,不需要任何字段。即使服务器上有标记为必需的字段,您也可以创建一个完全空的实体。简单使用 manager.createEntity('Entity'); 然后显示您的编辑器视图以输入名字和姓氏,然后调用保存。与在 ASP.Net MVC 中显示视图并在保存之前测试 ModelState 没有什么不同。

无论您是出于所有意图和目的创建还是编辑实体,您关于验证的陈述都是正确的,如果您正在做一些特别的事情,请显示一个片段,我可以尝试进一步提供帮助。

于 2013-05-28T14:57:24.617 回答