同时定期请求和ajax请求asp.net

时间:2016-09-12 17:49:27

标签: asp.net-mvc

我有一种情况,我想在用户点击链接的同时调用两种不同的控制器方法。一种方法是动作结果方法,一种是用于记录的方法,该方法应该对动作结果方法没有影响。是否可以使用常规http请求对actionResult方法发出请求,并且同时使用ajax对日志记录方法进行ajax调用?

2 个答案:

答案 0 :(得分:1)

如果链接并发送ajax请求,您可以使用jQuery劫持click事件。

$(function(){

   $("#yourLinkId").click(function(e){
      e.preventDefault();

      //make the ajax call here
      $.post("yourUrlForAjaxActionMethodHere");

      // and do the redirect to the url for which the link was clicked.
      window.location.href=$(this).attr("herf");

   });

});

假设您的链接ID为“yourLinkId

<a id="yourLinkId" href="/YourTargetUrl">Some link</a>

出于任何原因。如果您绝对希望在导航之前从您的ajax调用中获得成功响应,则可以在$.post方法成功回调中执行此操作

var url=$(this).attr("herf");
$.post("yourUrlForAjaxActionMethodHere",function(){
    window.location.href=url;
});

答案 1 :(得分:0)

两个动作方法都不能一起调用,因此最好使用ajax并在另一个成功时调用一个动作方法

<a onclick='someFunc()'>link</a>

<强> AJAX:

function someFunc()
{

         $.ajax({
                type: "POST",
                url: @url.action('firstActionMethod','controller'),
                success: function(data) {
                            $.ajax({
                               type: "POST",
                               url:   @url.action('SecondActionMethod','controller'),
                               success: /*SUCCESS CODE*/
                                 });
                       }
              });
}