【发布时间】:2014-11-22 15:30:06
【问题描述】:
我正在通过电子邮件和密码创建一个简单的登录页面。我有一个类 LoginViewModel ,其中将有一个 User 类作为成员变量。该类包含电子邮件地址。密码在主 LoginViewModel 中。我的用户类参考是这样的:
public User User { get; set; }
当用户填写电子邮件地址和密码并点击提交时,LoginViewModel 将字段正确绑定到视图中 User 类中的电子邮件地址:
@Html.TextBoxFor(m => m.User.Email) // m is the LoginViewModel model
如果我让上面的代码看起来像这样,我想知道为什么它不起作用:
public User User = new User();
它将用户实例中的电子邮件显示为空值。我知道使用构造函数可能比两者都好,但是这两者有什么区别。
编辑#1: 在“登录”操作方法中发布时,会找到我为模型中的电子邮件字段输入的值:
public User User { get; set; }
这个没有:
public User User = new User(); // --> because of this email field value shows up null
【问题讨论】:
-
@GrantWinney 我认为 OP 意味着在表达式映射中使用公共字段,而不是属性。
-
您的编辑确实表明我的答案不是您想要的。我已将其删除:我不知道如何将其编辑为可以回答您问题的表单,并且当问题显示没有很好的答案时,其他人更有可能自己尝试。
标签: c# asp.net-mvc model-binding