2013-03-18 55 views
0

我使用的是asp.net mvc 3.我的代码在我的视图中。如何在点击后隐藏我的ajax动作链接?

    <% 
        foreach(Team t in Model.AvailableTeams.AvailableTeams) 
        { %> 
        <%= Ajax.ActionLink(t.Title 
        , "InviteTeamToChallenge" 
        , "Challenge" 
        , new{id = t.TeamId 
        , challengeId = Model.ChallengeId 
        , teamId = t.TeamId 
        , invitedByUserId = Model.userId} 
        , new AjaxOptions 
        { 
          OnSuccess = "hideLabel(teamId)"  
        }) %> 
        <% } %> 

我想尽可能将teamId传递给一个javascript函数,该函数可以在点击后隐藏动作链接。现在,javascript方法没有被调用。这里是我的javascript:

 function hideLabel(teamId) { 
      alert("in JS"); 
      alert(teamId); 
      $('.teamId').hide(); 
     } 

我也想刷新列出已选定团队网页上的部分观点,但是这是对付后,我拿到这块另一个问题。

回答

1

您需要设置独特的ID为每个操作环节:

new AjaxOptions 
        { 
          OnSuccess = "hideLabel(" + t.TeamId + ")"  
        }, 
new { id="actionLink" + t.TeamId ) 

,比

function hideLabel(teamId) { 
      $('#actionLink' + teamId).hide(); 
     } 
+0

那得把调用的方法,但它仍然不隐藏操作链接。有任何想法吗? – user1977591 2013-03-18 15:10:07

0

猜测:

OnSuccess = "hideLabel(" + t.TeamId + ")"

0

只需使用

OnBegin="javascript:this.style.display='none'" 
or 
OnComplete="javascript:this.style.display='none'" 

例如

@Ajax.ActionLink("Hide button before ajax", "myAction", new AjaxOptions { OnBegin="javascript:this.style.display='none'" }) 

@Ajax.ActionLink("Hide button after ajax", "myAction", new AjaxOptions { OnComplete="javascript:this.style.display='none'" }) 
相关问题