2012-04-18 7 views
1

ここでは多くのことが起こっています。Telerik MVCグリッドテンプレート列のリンクを作成するには投稿をアクションに送信

私は、次のテンプレートの列とTelerik MVCグリッドを持っている:

@(Html.Telerik().Grid((IEnumerable<User)Model.Data) 
    .Name("UsersGrid") 
    .DataKeys(keys => keys.Add(c => c.UserName)) 
    .DataBinding(dataBinding => dataBinding.Server() 
    .Columns(c => 
    { 
    c.Bound(r => r.FullName).Title(""); 
    c.Bound(r => r.UserName).Title(""); 
    c.Template(
     @<text> 
     @if(@item.Status == "Pending") 
     { 
      @Html.ActionLink("Resend Invite", "ResendInvite", new { Email = @item.UserName, FirstName = @item.FullName }, new { @class = "reesendInviteLink" }) 
     } 
     </text> 
    ).Title("Link").HtmlAttributes(new { Style = "text-align: right;" }); 
    })); 

今、私はので、私はjQueryを使って次のことをやっているActionLinkのは、ポストアクションを呼び出すことはありません知っている:

$(document).ready(function() { 
    $(".resendInviteLink").click(function (e) { 
     var url = e.currentTarget.href; 
     $.post(url); 
    }); 
}); 

私が呼び出そうとしているActionメソッドは次のようになります:

[HttpPost] 
public ActionResult ResendInvite(UserVM user) 
{ 
    //....Do Something 
} 

jquery eをデバッグすると私が$ .postに到達するまで、そしてコントローラにResendInviteアクションが見つからないということに失敗するまで、何かがうまくいく。ある意味では、ActionLinkがPostではなくGetを探しているので意味があると思います。

グリッド上にリンクを作成するにはどうすればいいですか:
1. Telerikグリッドからメールとユーザーの名前を取得します。
2.ポストアクションメソッドを呼び出して、正しい値を指定します。

ありがとうございました。

答えて

1

あなたの問題は、リンクのclick eventでJqueryをサブミットしたにもかかわらず、リンクのオリジナルのclick eventが失敗し、依然として失敗するGetリクエストです。あなたがpreventDefault方法

$(".resendInviteLink").click(function(e) { 
    e.preventDefault(); 
    var url = e.currentTarget.href; 
    $.post(url); 
}); 

またはreturn falseを使用する必要が

は、イベントハンドラを形成:

$(".resendInviteLink").click(function(e) { 
    var url = e.currentTarget.href; 
    $.post(url); 
    return false; 
}); 
+0

ありがとうございました! –

関連する問題