多次加载MVC控制器

本文关键字:控制器 MVC 加载 | 更新日期: 2023-09-27 18:04:17

我的目标:

用户会话将跟踪存储在的guidSession.Add (guid.tostring ()) .

当在div中刷新部分时,控制器将进行检查对于现有的向导。这将让我跟踪需要什么通知显示,已经显示的内容,以避免重复…等

问题:

当通知应该再次显示时,即使我在传递给视图的模型中可以看到

我认为这是原因

由于某些原因,当我调试控制器作为非常开始方法来加载分部,它被加载了很多次,我相信就是为什么当通知应该显示时,它没有显示。

主索引视图,用于刷新部分。#概述。并且间隔为每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;

多次加载MVC控制器

我发现问题了

model.DisplayAlerts = addAlert;

addAlert正在被销毁。我必须将内容复制到模型中,而不是将一个变量分配给另一个。