0

我正在使用 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();
       }

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

4

3 回答 3

1

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

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

然后

function hideLabel(teamId) {
          $('#actionLink' + teamId).hide();
       }
于 2013-03-18T14:42:37.770 回答
0

猜测:

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

于 2013-03-18T14:35:05.500 回答
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'" })
于 2016-07-18T14:03:40.563 回答