我使用的是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();
}
我还想在列出已选中团队的页面上刷新部分视图,但这是我得到这篇文章后要处理的另一个问题。
答案 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'" })