[英]MVC controller being loaded multiple times
我的目標:
用戶會話將跟蹤存儲在Session.Add(guid.tostring())中的guid。
當在div中刷新局部時,控制器將檢查現有的向導。 這將讓我跟蹤需要顯示哪些通知,已經顯示了什么以避免重復..etc。
問題:
當應該再次顯示通知時,即使我在傳遞給視圖的模型中看到通知也沒有
我認為是原因
由於某種原因,當我調試控制器作為加載部分方法的開始時,它已被加載了很多次,我相信這就是為什么在顯示通知時沒有顯示的原因。
刷新部分的主索引視圖。 #overview。 而且間隔是每15秒一次。
function intervalTrigger() {
$('#overview').load('/Home/Overview');
};
<div id="overview">
@{Html.RenderPartial("Overview", "Home");}
</div>
顯示警報的概述部分中的代碼
@for (int i = 0; i < Model.DisplayAlerts.Count(); i++)
{
@:$(function () {
@:$.Notify({
@:keepOpen: true,
@:caption: '@Model.DisplayAlerts[i].SectionName',
@:content: '@Model.DisplayAlerts[i].ParamDescription <br/> @Model.DisplayAlerts[i].DetailDatetime.ToString("MM/dd/yyyy hh:mm:ss tt ")',
@:type: 'alert'
@:});
@:});
}
正在填充傳遞給視圖的模型的代碼
OverviewModel model = new InformationController().GetOverviewModel();
model.DisplayAlerts = new List<BasicSectionDetailModel>();
List<BasicSectionDetailModel> details = new Collector.InfoCollector().GetSectionDetailsNotOKState();
List<Guid> sessionKeys = new List<Guid>();
for (int i = 0; i < Session.Contents.Count; i++)
{
Guid guid;
if (Guid.TryParse(Session.Keys[i].ToString(), out guid))
{
sessionKeys.Add(guid);
}
}
List<BasicSectionDetailModel> addAlert = details.Where(x => !sessionKeys.Any(x2 => x2 == x.ID)).ToList();
foreach (BasicSectionDetailModel alert in addAlert)
{
Session.Add(alert.ID.ToString(), null);
}
List<Guid> removeAlert = sessionKeys.Where(x => !details.Any(x2 => x2.ID == x)).ToList();
foreach (Guid remove in removeAlert)
{
Session.Remove(remove.ToString());
}
model.DisplayAlerts = addAlert;
return model;
我發現了問題
model.DisplayAlerts = addAlert;
addAlert被銷毀了。 我必須將內容復制到模型中,而不是將一個變量分配給另一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.