2016-01-13 52 views
0

我遇到了一個應用程序問題,我正在使用Knockout和Knockout.mapping插件與MVC部分視圖一起開發應用程序。關於部分視圖的敲除緩存 - 強制刷新

背景

我想實現一個門戶網站,用戶可以有不同的配置文件,所以我給他們選擇,他們有多少配置文件要和他們的名字的選項。在此之後,他們轉到下一頁,在那裏他們配置他們的配置文件,每個配置文件由相同的屬性和字段組成,在一天結束時,他們全部進入同一個表格,僅使用不同的「ProfileID」

目前的情況

我只有一個下拉列表視圖,其中列出了不同的配置文件的名稱,一旦個人資料被選中,一個partialView呈現顯示可編輯的信息給用戶,在這裏我使用knockout讓用戶在客戶端添加/刪除屬性,然後使用Ajax請求將這些更改發佈到DataBase中。在控制器上的Post方法中,我返回一個JSON對象來更新Knockout ViewModel綁定,我可以成功完成此操作。到目前爲止這麼好,對吧?

問題

一旦用戶保存他們的個人資料,他們可能會去編輯下一個,做什麼,而且很可能回來他們已經編輯一個配置文件。這是問題出現的地方:頁面上顯示的信息是它們原來的信息,即舊信息。我已經追蹤了所有內容,儘管DataBase中的數據可以正常運行,但事實是瀏覽器甚至不會再向服務器請求Info,這意味着可能會緩存?如果可以,我該如何強制瀏覽器總是從服務器請求信息,或更新緩存的viewModel?

說明和回答 我終於知道,原來沒有做淘汰賽,但只是一般的緩存,解決這個問題是要禁用控制器緩存,將返回的局部視圖,通過添加方式這段代碼:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")] 

回答

0

我終於知道,原來不具有淘汰賽做,但只是一般的緩存,順便解決它禁用控制器緩存,將返回的局部視圖,通過添加下面這段代碼:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]