MVC3 与 2010 中具有单个视图或两个视图的单个实体

本文关键字:单个 视图 两个 实体 MVC3 2010 | 更新日期: 2023-09-27 18:36:18

我有以下实体模型

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 部分使用此视图插入 empplyee 详细信息

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

我有使用默认模型生成的用于创建新和编辑的操作控制器。正在执行两个用户操作。

1.当用户单击"新建"时,他将只能更新"员工"信息

2.As,当另一个部门收到员工家庭详细信息时,他们会更新姓氏和家庭出生日期。 即,员工姓氏和雇员家庭多布。

在创建新记录时,用户应该只能更新员工信息

,而在编辑信息时,他应该能够更新员工家庭信息。由于我有一个单一的视图,其中大多数字段都是必需的并且不允许 null,因此如何在 sincle 视图中实现这一点?

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

公共类员工{

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;}    

}

现在默认情况下,我希望createnew操作将为empFamilyname(字符串数据类型)和empFamilyDob插入空值。在"编辑"操作中,应使用户输入 empFamilyname 和 empFamilyDob(必填)。由于用户很有可能编辑有关员工的其他信息(如 employeeDob),我不想进行部分视图。你能帮我做一些说明吗?提前致谢

MVC3 与 2010 中具有单个视图或两个视图的单个实体

"

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

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

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

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