我正在使用C#,Breeze和Durandal来创建一个SPA,但这个问题不仅仅与SPA有关。通常,您有要创建和编辑的实体。拿这个简单的实体:
class Entity {
[Key]
public int Id;
[Required]
public String FirstName;
[Required]
public String LastName;
}
现在您需要为此实体创建一个创建和编辑表单(* 100个其他实体)。简单的方法是为每个函数创建一个表单。但是,这些表格几乎完全相同。
如果不需要任何字段,当有人点击“创建”时,您可以在数据库中创建实体并将其重定向到/ edit / $ id。但是,您希望对保存编辑的用户使用注释生成的自动验证。
什么是减少表单html和后端代码重复的好方法?简单地让两个视图模型共享相同的视图可能已经足够好但我不确定如何使用durandal来做到这一点。
答案 0 :(得分:2)
在您通过提交保存实体之前,不需要任何字段。即使服务器上标记了需要的字段,您也可以创建一个完全空的实体。简单使用manager.createEntity('Entity');然后显示编辑器视图以输入名字和姓氏,然后调用save。与在ASP.Net MVC中显示视图并在保存之前测试ModelState没什么不同。
关于验证的陈述适用于您是否为所有意图和目的创建或编辑实体,如果您正在做一些特别的事情显示片段,我可以尝试进一步提供帮助。