不确定这个问题是否已经被问过。
我正在开发一个 ASP .NET MVC 2 站点。我的视图有一个下拉菜单,用户可以在其中选择要显示的记录以进行编辑。更改此下拉列表时,当前选定记录的字段值会自动发布到服务器并保存在会话中。在响应中,服务器然后返回一个用于编辑新选择的记录的视图。
我遇到的问题是在显示新记录时会记住上一条记录中的某些字段值。
在我看来,我有类似以下问题的原因:
<%= Html.TextBox("ActionTypeDetails.DisplayName",
Model.ActionTypeDetails.DisplayName) %>
在这里,我希望发布的数据填充一个名为ActionTypeDetails的参数,该参数具有多个属性,包括DisplayName。
我的控制器操作如下所示:
public ActionResult EditActionType(Guid PluginEditID,
Guid? SelectedActionTypeID,
ActionTypeViewObj ActionTypeDetails)
我尝试将我的观点改为:
<%= Html.TextBox("PostedActionTypeDetails.DisplayName",
Model.ActionTypeDetails.DisplayName) %>
我的控制器对此采取的行动:
public ActionResult EditActionType(Guid PluginEditID,
Guid? SelectedActionTypeID,
ActionTypeViewObj PostedActionTypeDetails)
然而它仍然表现出同样的问题。有人可以解释一下为什么它会这样工作的逻辑吗?仍然允许我使用内置模型绑定的最简单的解决方法是什么?我知道我可以清除 ModelState 但这并不理想,因为我希望记住表单上的一些其他数据。