在返回视图之前清除已发布的值

时间:2013-11-26 14:37:34

标签: forms asp.net-mvc-3 html-helper

我实现了一项功能,可以在完成当前记录后自动加载下一条记录。在服务器上,我可以获得下一条记录并将其加载到模型中。问题是,当我返回视图时,MVC偏爱上一个记录中的已发布值而不是当前记录中的模型值。

Public Function Update(model As UpdateModel) As ActionResult
    '... save changes to the model

    If model.LoadNext Then
        Dim nextRecord As UpdateModel = GetNextRecord()

        Return View(nextRecord)

    Else
        Return RedirectToAction("Index")
    End If
End Function

我已在调试器中确认我正在正确传递nextRecord。该视图正在读取发布的值(来自Request我猜?)而不是使用模型。

有没有办法避免这种行为。 Request.FormRequest.ParamsRequest.QueryString都是只读的,所以我无法清除它们。

1 个答案:

答案 0 :(得分:1)

在返回视图之前,您应该调用ModelState.Clear()。请注意,如果您不想破坏用户导航,Post-Redirect-Get也是一个选项。