我正在开发一个asp.net核心应用程序,在该应用程序中,单击超链接时将加载视图。视图加载良好,但是这里发生的奇怪事情是,每当我单击超链接时,对控制器动作的调用都会进行两次。当我在动作方法上放置调试点时,我无意中发现了这个问题,并且它被击中了两次。然后,我还检查了浏览器中的“网络流量”选项卡,还发现两次记录了对控制器动作的调用。
布局页面中超链接的标记:
<li><a asp-action="ApplyLeave" asp-controller="Home">Apply Leave</a></li>
控制器的操作方法:
[HttpGet]
public IActionResult ApplyLeave()
{
.......
.......
.......
return View();
}
ApplyLeave.cshtml
@{
ViewData["Title"] = "Apply Leave";
}
<header class="page-header">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<h2 class="no-margin-bottom">
Apply Leave
</h2>
</div>
</div>
</div>
</header>
请提前帮助我解决这个问题!
答案 0 :(得分:1)
如果在“网络”选项卡的控制台窗口中看到您的请求,则有两种请求:-
1:文档类型 2:XmlHttpRequest
文档类型请求来自“查看即操作”链接,其中提到了操作方法名称,但是如果您看到另一个请求,则该请求来自Javascript环境。
请参阅XMLHttpRequest的正式定义: XMLHttpRequest(XHR)是对象形式的API,其方法在Web浏览器和Web服务器之间传输数据。该对象由浏览器的JavaScript环境提供。
请对您的JS部分进行一次验证。
答案 1 :(得分:0)
谢谢大家对此的关注。 我有site.js,在其中保留了所有脚本代码和ajax调用的代码。 曾有一个ajax调用本打算在特定页面上调用,但是由于代码不正确,该ajax调用是在每隔一页加载后触发的。 因此,我更正了该Ajax调用的代码,现在我看不到对控制器的任何重复调用,一切工作正常。 谢谢大家。