将属性值分配给复选框mvc c#

时间:2016-11-05 18:51:06

标签: c# asp.net asp.net-mvc-5

希望有人可以给我一个正确的方向。

所以我有一份工作“产品”表格,员工填写表格,结果显示在桌子上。我在此表单中添加了一个“已批准”复选框,表中还会显示是否选中此结果。

但是,由于任何员工都可以编辑这个,我想要一个关于谁检查和取消选中我的数据库中的框的记录。所以我在“产品”数据库表和模型中添加了checkedBy和checkboxDate。

我只是想知道这是正确的方法,或者我应该拥有自己的桌子,模型,属性等复选框?

3 个答案:

答案 0 :(得分:1)

我的建议是拥有一个包含4列的单独表格 - UpdatedBy(保存更新者),UpdateDate(即更新时可能是系统日期),组件(部件或页面名称已更新)和部分(哪个值或控件已更新)。这将有助于您将此表用于整个产品的任何此类更改。

答案 1 :(得分:0)

这是完全正常的解决方案。如果复选框与"产品"有关系向该表添加一些与该复选框对应的属性是正常的。

答案 2 :(得分:0)

我认为这不是一个好的解决方案。因此,如果UserA取消选中该框,则会在ProductId1的产品表中记录UserA和Uncheck(例如)。然后,当UserB检查此项时,您将覆盖ProductId1中的这些值。因此,您只保留最后一个选中/取消选中它的人。

以下是我过去做过这样的事情。在db中,对于任何需要历史记录的表,我添加以下内容:

  1. UpdatedByUser
  2. EffectiveFrom - 此值是编辑完成时的日期。在您的情况下,编辑是,检查并取消选中。
  3. EffectiveTo - 如果为null,则当前记录为活动记录。如果这有一个值,则表示此行中的信息是从EffectiveFrom到EffectiveTo日期的当前信息。
  4. 每当有人对记录进行更改时,我都会设置当前记录的UpdateByUser和EffectiveTo(至Now)。然后我插入一个包含现有值和更改值的新记录。此记录将使EffectiveTo为null(表示这是当前活动记录)。这样你就会知道改变了什么,你也有历史。在给定产品的任何实例中,只有1条记录应将EffectiveTo设置为null。其余的应该有一个值。

    哦,我不会把列调成checkBy,uncheckedBy因为这是非常具体的。我会称它们为ApprovedBy,RejectedBy或者对应用程序所针对的域有意义的东西。