MVC httppost将模型加载到控制器中,指定在另一个

时间:2016-09-29 20:41:37

标签: c# asp.net-mvc entity-framework

我将一个实体模型传递给我的视图,其中包含一些隐藏的和适用于相应字段的编辑器。

当我提交表单时,我的所有成员都在控制器中遇到了。但是,我扩展了我的实体模型,以便附加一个字段来附加到字段。

        public string DescriptionAdd {
        get { return ""; }
        set { DescriptionHistory += DateTime.Now.ToString("dd MMM yyyy : hh:mm tt") + " by " + Core.Authorization.LoginUser.Current.FullName + " <span style='display:none;'>" + Core.Authorization.LoginUser.Current.EmailAddress + "</span> " + value + "<br />"; }
    }

好的,到目前为止一切似乎都很好。

但是,当我点击保存时,DescriptionHistory为空。但是,当控制器实际上在调试器中停止时,DescriptionHistory具有原始值。

这让我觉得它以错误的顺序加载它们。是否可以指定成员绑定的顺序?

1 个答案:

答案 0 :(得分:0)

好的,如果我正确理解你想要将DescriptionHistory和一些系统驱动的值保存到Description列上的基础表中随时保存。

这是通过扩展原始实体类

来实现它的方法

Ex:对于您的原始实体,如下所示

public partial class Employee
{
   public string Description
   {
      get;
      set;
   }
}

您可以通过少量调整进行扩展和注释,以满足您的需求

[MetaDataType(typeof(EmployeeMetaData))]
public partial class Employee
{
   [Column("Description")]
   public string DescriptionAdd
   {
      set { }
      get { return DateTime.Now.ToString("dd MMM yyyy : hh:mm tt") + " by " + Core.Authorization.LoginUser.Current.FullName + " <span style='display:none;'>" + Core.Authorization.LoginUser.Current.EmailAddress + "</span> " + value + "<br />"; }
   }
}

public class EmployeeMetaData
{
   [NotMapped]
   public string Description
   {
      get;
      set;
   }
}

希望这符合您的需求。