1

不确定这个问题是否已经被问过。

我正在开发一个 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 但这并不理想,因为我希望记住表单上的一些其他数据。

4

1 回答 1

0

如果您回发到相同的 url,asp.net 具有保留字段值的机制。更多信息可以在这里找到。

于 2011-04-08T13:52:12.693 回答