2013-11-26 21 views
1

我實現了一項功能,可在完成當前配置後自動加載下一個記錄。在服務器上,我可以獲得下一個記錄並將其加載到模型中。問題是,當我返回視圖時,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 

我已經在調試器中確認我正確傳遞下一條記錄。該視圖正在讀取發佈的值(我猜是從Request),而不是使用該模型。

有沒有辦法避免這種行爲。 Request.Form,Request.ParamsRequest.QueryString都是隻讀的,所以我無法清除它們。

回答

1

您應該在返回視圖之前調用ModelState.Clear()。記住Post-Redirect-Get也是一個選項,如果你不想中斷用戶導航。

+0

謝謝。我實際上*想要*在這種情況下中斷用戶導航。他們應該爲登錄頁面添加書籤,而不是單個記錄頁面。 –