我有以下实体模型
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 。即,empFamilyName 和 EmpFamilyDob。--Hr 部分 使用此 View 插入empplyee 详细信息
- 由于 empFamilyname 和 EmpFamilyDob 现在是强制性的,其他部分将编辑数据并更新 EmpFamilyName 和 EmpFamilyDob,因为有关员工家庭详细信息的信息是收到。
我有用于 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 :
- _EmployeeInformation 将仅包含员工信息字段(不包含家庭信息)
- _EmpFamilyInformation 将仅包含与家庭相关的字段
通过这种方式,您可以创建一个仅包含“_EmployeeInformation”的“新建” View ,而“编辑” View 包含“_EmployeeInformation”+ _EmpFamilyInformation。这可以防止您在使用两个 View 或添加一些 View 时重复代码 View 中的噪音(比如放置所有字段然后测试是否可以根据用户请求显示家庭信息)如果你想要一个。
关于c# - mvc3 vs2010 中具有单个 View 或两个 View 的单个实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19510975/