我有以下实体模型
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添加到了Model中,并通过DataAnnotations使它成为必需的。
现在有两套视图需要开发。
1.一种视图,仅允许收集雇员信息而没有雇员家庭信息。即empFamilyName和EmpFamilyDob。-Hr部分使用此视图插入员工详细信息
由于现在已强制empFamilyname和EmpFamilyDob为强制性,因此其他部分将在接收到有关员工家庭详细信息的信息时编辑数据并更新EmpFamilyName和EmpFamilyDob。
我有用于使用默认模型生成的CreateNew和Edit的动作控制器。
有两个正在执行的用户操作。
1,当用户点击创建新消息-他将只能更新员工信息
2.当另一部分收到员工家庭详细信息时,他们会更新姓氏和家庭出生日期。即EmployeeFamilyname和EmployeFamilyDob。
在创建新记录时,使用应仅能够更新员工信息,而在编辑信息时,他应该能够更新员工家庭信息。由于我只有一个视图,其中大多数字段都是必填字段,并且不允许null,如何在单视图中实现呢?
我已经像这样重新校正了模型
公职员工
{
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),因此我不想查看部分视图。你能帮我一些例证吗?提前致谢
最佳答案
“创建新内容”操作阻止用户提交家庭信息,但是这些信息是强制性的,如何对其进行验证?您是否指定一些默认值?
无论如何,您可以根据需要使用局部视图:
_EmployeeInformation将仅包含用于员工信息的字段(不包括家庭信息)
_EmpFamilyInformation将包含仅与家庭相关的字段
这样,您可以创建一个仅包含“ _EmployeeInformation”的“创建新”视图,而“编辑”视图包含“ _EmployeeInformation” + _EmpFamilyInformation”,这可以防止您在复制两个视图时重复代码,或者在您的视图中添加一些噪音视图(例如放置所有字段,然后测试是否可以根据用户请求显示家庭信息)。
关于c# - 在mvc3 vs2010中具有单个 View 或两个 View 的单个实体?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19510975/