不确定是否已经提出过这个问题。
我正在开发一个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但这并不理想,因为我希望记住表单上的其他一些数据。