gpt4 book ai didi

c# - mvc3 vs2010 中具有单个 View 或两个 View 的单个实体?

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:45 25 4
gpt4 key购买 nike

我有以下实体模型

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

这里我要设计一个 View ,用于收集员工信息和员工家庭信息。

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

现在有两套观点有待发展。1. 只允许收集员工信息而没有员工家庭信息的 View 。即,empFamilyNameEmpFamilyDob。--Hr 部分 使用此 View 插入empplyee 详细信息

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

我有用于 CreateNew 和 Edit 的 Action Controller ,它是使用默认模型生成的。正在执行两个用户操作。

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

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

在创建新记录时,用户应该只能更新员工信息,而在编辑信息时,他应该能够更新员工家庭信息。由于我有一个包含大多数这些字段的单一 View ,并且不允许 null ,我如何在单一 View 中实现这一点?

我已经像这样重新修正了模型<​​/p>

公共(public)类Employee{

public 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(强制)。由于用户很有可能会编辑有关员工的其他信息(如 employeeDob),所以我不想查看部分 View 。你能帮我画一些插图吗?提前致谢

最佳答案

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

无论如何,您可以根据需要使用局部 View :

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

通过这种方式,您可以创建一个仅包含“_EmployeeInformation”的“新建” View ,而“编辑” View 包含“_EmployeeInformation”+ _EmpFamilyInformation。这可以防止您在使用两个 View 或添加一些 View 时重复代码 View 中的噪音(比如放置所有字段然后测试是否可以根据用户请求显示家庭信息)如果你想要一个。

关于c# - mvc3 vs2010 中具有单个 View 或两个 View 的单个实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19510975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com