如果viewModel.Note
是对NoteViewModel
实例的引用,那么您可以使用以下内容:
public class NoteViewModel{
private DateTime? m_Modified;
private string m_ModifiedBy;
// note that you do not need the DisplayNameAttribute, because the default
// display name is the property name
public DateTime Modified {
get { return m_Modified ?? DateTime.Now; }
}
[DisplayName("Modified By")]
public string ModifiedBy {
get { return m_ModifiedBy ?? string.Empty; }
set {
if(value!=null) {
m_ModifiedBy = value;
m_Modified = DateTime.Now;
}
}
}
}
然后在你的“代码”中(我猜你的意思是控制器?),你可以这样做:
viewModel.Note.ModifiedBy = User.Identity.Name;
你会得到预期的结果。
旁注:根据您的应用程序的受众,您可能需要考虑将DateTime.UtcNow
其用于本地化目的。 DateTime.Now
将返回服务器上的当前 DateTime,这取决于服务器的位置。如果您向用户显示此数据,您可能希望 (a) 指定时区,或 (b) 将时间本地化到客户端计算机的时区