ASP.NET MVC Action被称为两次

Dus*_*sda 20 asp.net-mvc

我有一个特定的控制器动作被调用两次,除了奇怪之外导致我的应用程序的单个部分出现问题(不是真正的问题,它只是引起我的双重调用).

知道为什么控制器动作每次都要执行两次吗?

tva*_*son 27

false在通过AJAX进行调用的链接上的JavaScript单击处理程序中,不返回或阻止对事件的默认操作.在这种情况下,它还将采用链接的默认操作(即,非AJAX帖子到同一URL).

防爆.

<%= Html.ActionLink( "action", "controller" ) %>


$(function() {
   $('a').on('click', function(e) {
      // solve with "e.preventDefault();" here
      var href = $(this).attr('href');
      $.get(href, function() { ... });
      // or solve with "return false;" here to prevent double request
   });
}):
Run Code Online (Sandbox Code Playgroud)


thd*_*thd 13

我有类似的问题.该问题是由我的_Layout.cshtml文件中的这一行引起的:

<link rel="shortcut icon" href="">
Run Code Online (Sandbox Code Playgroud)

删除上面的行后,我的操作被调用一次.

  • 谢谢,解决了我的问题。添加更多关于如何 - 空白的 href 被分配了实际调用的操作的 URL,并进行了自己的调用。删除此链接为我解决了这个问题。 (2认同)

del*_*yjm 8

很晚但我发现有

<img id="myLogo" src="#"/> 
Run Code Online (Sandbox Code Playgroud)

导致这使它再次进行呼叫.希望这有助于某人,我不确定的原因.

找到解决方案. http://skonakanchi.blogspot.com/2011/09/action-method-calling-twice-in-aspnet.html


Fit*_*itz 7

这也是迟到的,但也许这会对某人有所帮助.

我的问题是类似的(控制器方法会在初始加载时触发一次,然后会异步地再次触发).

我能够检查HttpContext.request对象,并确定第二个请求是由Visual Studio的"浏览器链接"功能引起的.

我禁用了浏览器链接和神秘的ajax调用我的控制器方法不再发生.

如何禁用浏览器链接