单击后如何隐藏我的ajax动作链接?

时间:2013-03-18 14:31:41

标签: javascript asp.net ajax asp.net-mvc-3

我使用的是asp.net mvc 3.我的视图中有这个代码。

                   <%
                  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();
       }

我还想在列出已选中团队的页面上刷新部分视图,但这是我得到这篇文章后要处理的另一个问题。

3 个答案:

答案 0 :(得分:1)

您需要为每个操作链接设置唯一ID:

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

而不是

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

答案 1 :(得分:0)

猜测:

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

答案 2 :(得分:0)

只需使用

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

e.g。

@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'" })