2

我有以下实体模型

public class Employee
{
    public int Employee ID{get;set;}

    public string employeename{get;set;}

    public datetime employeeDOb{get;set;}

    public datetime? employeeDateOfJoin{get;set;}

    public string empFamilyname{get;set;}

    public datetime empFamilyDob{get;set;}    
}

这里我要设计一个视图来收集员工信息和员工家庭信息。

由于我正在处理已经可用的数据,因此 empFamilyDob不是强制性的。但现在它是强制性的,以前的数据不包含EmpFamilyDob。 所以很自然地,我将这个新属性EmpFamilyDob添加到模型中,并通过 DataAnnotations 使其成为必需。

现在有两组视图有待开发。1. 仅允许收集员工信息而无需员工家庭信息的视图。即empFamilyNameEmpFamilyDob .-- Hr 部分使用此视图插入员工详细信息

  1. 由于 empFamilyname 和 EmpFamilyDob 现在是强制性的,其他部分将编辑数据并在收到有关员工家庭详细信息的信息时更新EmpFamilyNameEmpFamilyDob 。

我有使用默认模型生成的 CreateNew 和 Edit 的动作控制器。有两个用户操作正在执行。

1.当用户点击新建——他将只能更新员工信息

2.当其他部分收到员工家庭详细信息时,他们会更新姓氏和家庭出生日期。即,EmployeeFamilyname 和 EmployeFamilyDob。

在创建新记录时,用户应该只能更新员工信息,而在编辑信息时,他应该能够更新员工家庭信息。由于我有一个视图,其中大部分字段都是必需的,并且不允许 null ,我怎样才能在单视图中实现这一点?

我已经像这样重新更正了模型

公共类员工{

公共 int 员工 ID{get;set;}

public string employeename{get;set;}

public datetime employeeDOb{get;set;}

public datetime? employeeDateOfJoin{get;set;}

public string empFamilyname{get;set;}

public datetime? empFamilyDob{get;set;}    

}

现在默认情况下,我希望 createnew 操作将为 empFamilyname(string datatype) 和 empFamilyDob 插入空值。在编辑操作中,应该让用户输入 empFamilyname 和 empFamilyDob(mandatory)。由于用户很有可能编辑有关员工的其他信息(例如employeeDob),因此我不想进行部分视图。你能帮我做一些插图吗?提前致谢

4

1 回答 1

0

“新建”操作阻止用户提交家庭信息,但它们是强制性的,如何验证?您是否指定了一些默认值?

无论如何,您可以根据需要使用部分视图:

  1. _EmployeeInformation 将仅包含员工信息字段(没有家庭信息)
  2. _EmpFamilyInformation 将包含仅与家庭相关的字段

这样,您可以创建一个仅包含“_EmployeeInformation”的“创建新”视图,而“编辑”视图包含“_EmployeeInformation”+ _EmpFamilyInformation”。这可以防止您在使用两个视图时重复代码,或者在您的查看(例如放置所有字段然后测试是否可以根据用户请求显示家庭信息)如果您选择一个。

于 2013-10-22T07:55:50.193 回答