3

Jquery + Ajax のみを使用して、このステートメントをどのように書き換えますか? このコードはリンクを表示します。クリックすると、ビューが StuffPanel id に返されます。

@{ AjaxOptions options = new AjaxOptions
           {
               InsertionMode = InsertionMode.Replace,
               UpdateTargetId = "StuffPanel",
               OnBegin = "OnBeginWork",
               OnComplete = "OnCompleteWork",
           };}
<p>@Ajax.ActionLink("show stuff", "Index", "Stuff", options)</p>
4

2 に答える 2

3

どうぞ:

<a href="/Index/Stuff" id="action">show stuff</a>

$(function() {
    $('#action').click(function(e) {
        e.preventDefault();
        var url = $(this).attr('href');
        $.ajax({
            url: url,
            beforeSend: OnBeginWork,
            complete: OnCompleteWork,
            success: function(html) {
                $('#StuffPanel').html(html);
            }
        });
    });
});

正しいルーティングを取得するだけなので、actionLinkを維持することをお勧めします。クリックイベントを簡単にバインドできるようにIDを追加してから、クリックイベントコールバックを使用してajax呼び出しを起動します。成功関数を使用して、の内容を#StuffPanel応答に置き換えます。

于 2012-04-30T20:01:22.403 に答える
0

あなたが提供した限られた量の情報に基づいて、このようなものはあなたを正しい方向に向かわせるはずです:

$(function(){   
    $('#id-to-link').on('click',function(e){
        e.preventDefault();
        $.ajax('Index/Stuff',{
            type: 'POST',
            data: '{}',
            dataType: 'html',
            contentType: 'application/json; charset=utf-8',
            success: function(data){
                $('#StuffPanel').html(data);
            }
        });
    });
}

dataコールバックで変数を確認する必要がありsuccessます。ビューからのHTMLは、likeまたはdatasolikeのプロパティ内またはプロパティ内にあります。また、クリックイベントを簡単にバインドできるように、リンクに一意のIDを指定する必要があります。datadata.ddata.message

于 2012-04-30T20:01:56.927 に答える