刷新剃须刀页面时运行OnGetAsync方法

时间:2019-09-10 20:40:47

标签: javascript asp.net-core razor-pages page-refresh

我正在努力确定在刷新剃刀页面时如何运行下面代码中显示的方法,当前该方法仅在最初加载页面时才运行(通常可能是用户正在加载其他页面然后回到这个)

每次用户单击浏览器刷新按钮或单击F5按钮时,我都需要运行此方法。我依靠从数据库中提取数据,然后确定我正在运行的后台服务的图标状态应该是什么。

    public async Task OnGetAsync()
    {
        SystemMapping = await _context.SystemMapping
            .Include(s => s.ConnectorInbound)
            .Include(s => s.ConnectorOutbound).ToListAsync();

        foreach (var mapping in SystemMapping)
        {
            string mappingName = mapping.MappingName;
            if (ConnectorManagement.systemMappingStatusDictionary.TryGetValue(mappingName, out string status))
            {
                ViewData.Add(new KeyValuePair<string, object>(mappingName, status));
            }
            else
            {
                status = "Stopped";
                ViewData.Add(new KeyValuePair<string, object>(mappingName, status));
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

只要使用HTTP OnGetAsync动词来请求页面,就会运行GET方法。如果页面最初是使用GET(默认设置)加载的,则按 F5 或单击浏览器中的刷新图标将导致另一个GET请求和{{1 }}方法将被触发。

如果页面最初是使用OnGetAsync动词加载的,则刷新将导致另一个POST请求,尽管浏览器会警告您先提交表单。

因此,您要寻找的是默认行为。您根本不需要做任何事情。