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

标签 c# visual-studio-2010 asp.net-mvc-3

我有以下实体模型

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/

相关文章:

asp.net-mvc - 请推荐为 MVC 网格实现内联编辑的方法?

javascript - 为什么这个DateTimePicker脚本会导致IE6和IE7无法加载页面

c# - 没有加载的 AssemblyInfo

c# - 数据绑定(bind) Int 属性到 WPF 中的枚举

c# - 使用 ClickOnce 发布时如何获取状态信息(例如,7/30 上传)?

c++ - 错误 C2662 问题

c# - ASP.NET MVC 超链接一个项目到另一个项目

c# - 任何人都可以帮助使用 Kinect 和 C# 解决 "newSensor_AllFramesReady does not exist in current context"问题吗?

ide - ReSharper 5 安装程序无法识别 Visual Studio 2010 Express

mysql - 如何自定义MySql Connector/net?