首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >excel中的链接会导致重复调用。

excel中的链接会导致重复调用。
EN

Stack Overflow用户
提问于 2014-07-28 11:00:16
回答 1查看 674关注 0票数 0

问题背景

在我的ASP.net MVC4 web应用程序中,我们允许用户在Excel工作簿中下载数据,其中一个单元格包含指向报表页的超链接。我们准备链接,以便当用户单击Excel中的链接时,使用参数调用ReportController,处理请求并返回报表摘要视图,即.cshtml页面。一切正常..。

我使用SpreadSheetGear生成excel,生成链接的代码片段:

代码语言:javascript
运行
复制
rrid = (int.TryParse((string) values[row][column], out outInt) ? outInt : 0);
worksheet.Hyperlinks.Add(worksheet.Cells[row + 1, column],
    PrepareProspectProfileLink((int) rrid, downloadCode),
    string.Empty,
    "CTRL + click to follow link",
    rrid.ToString(CultureInfo.InvariantCulture));

问题

我只是注意到,当我单击excel中的链接时,相同的请求会被发送到web服务器两次。

分析

我使用Fiddler进行了检查,并在应用程序代码中放置了一个断点,并确认请求确实发送了两次。

在fiddler中,在Process列中,我发现第一个请求来自"excel:24408“,第二个请求来自"chrome:4028”。

另外,如果我在Outlook中复制粘贴链接,它只调用一次请求。

据我所知,第一个请求是由excel调用的,当excel与html一起服务时,它不知道如何呈现它,因此将请求移交给默认的web浏览器,即我的系统上的Chrome。现在Chrome会发出相同的请求,并且在接收到html时,它会打开html页面。

问题

我怎么才能阻止这种行为?它给web服务器带来不必要的负载。其次,当我审核用户操作时,我得到两个条目:(

EN

回答 1

Stack Overflow用户

发布于 2014-07-28 11:15:02

我不确定excel,但您可以在web服务器上处理这种奇怪的行为。您可以创建html页面(无需审核),该页面将使用javascript将用户重定向到具有真实报表(以及审计内容)的页面。

如果您只关心审计,您可以在缓存(或db)中跟踪对报表的请求,并且只有在5秒钟前没有触发相同的报表请求时才考虑进行审计条目。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24993813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档