我想弄清楚如何在我的視圖加載並呈現給用戶時在我的控制器中調用方法。我試過覆蓋了OnResultExecuted
和OnActionExecuted
,但這似乎並沒有成功。視圖加載後,是否可以在控制器中調用動作?
protected override void OnResultExecuted(ResultExecutedContext filterContext)
{
ConnectToDataSources();
base.OnResultExecuted(filterContext);
}
的ConnectToDataSources
方法設置使用的SqlDependency觸發實時更新在遠程服務器上連接一個WCF服務。客戶端我使用SignalR在每次更改時更新視圖。如果沒有數據的「實時流」,服務將返回數據庫中的最後一個值。我的問題是,它似乎發生得太快,所以我的價值觀沒有正確設置。
如果我嘗試一些愚蠢的做法與延遲一秒鐘的計時器,值顯示。然而,這不是一個穩定的解決方案,就像我說的,我試圖找出在觸發ConnectToDataSources
方法之前如何等待視圖完全加載。
public void ConnectToDataSources()
{
foreach (UnitDetailsModel unit in Model.UnitDetails)
{
var ods = new OperationDataSource();
var ads = new ActivityStatusDataSource();
ads.Start(unit.UnitId, ActivityReceived, AliveReceived);
ods.Start(DataReceived, unit.UnitId);
_dataSources.Add(ods);
_activityStatusDataSources.Add(ads);
}
}
我會做客戶端(服務器沒有關於渲染事物的知識)。當文檔準備就緒時,只需啓動一個AJAX請求(如果不需要,就忽略結果)。 –