通常当我设计一个表单时,我期望的数据是页面视图模型的一部分,我可以将类放在控制器方法中并且绑定工作。
但是,我在母版页的部分视图中添加了一个表单,因此它并不特定于任何一个视图模型。我尝试确保表单字段的 ID 与通常自动生成的 ID 匹配,但在我的控制器方法中对象值始终为空。
这是我的母版页的部分视图的片段:
<tr>
<td >Current password:</td>
<td><%= Html.Password("PasswordChange.OriginalPassword", "", new RouteValueDictionary { { "class", "required remote" } })%></td>
</tr>
<tr>
<td >New password:</td>
<td><%= Html.Password("PasswordChange.NewPassword", "", new RouteValueDictionary { { "class", "required remote" } })%></td>
</tr>
如您所见,可以想象,PasswordChange 不是我所有视图模型的一部分(肯定没有必要从一个公共基础继承我的所有视图模型才能使用此表单?)。
我的控制器方法如下所示:
[HttpPost]
public ActionResult ChangePassword(PasswordChange PasswordChange)
{
我点击了该方法,但 PasswordChange.OriginalPassword 和 PasswordChange.NewPassword 始终为空。
我认为有一些简单的方法可以做到这一点,但我无法弄清楚。