1

状況は次のとおりです。Product多くのプロパティを持つモデルがあり、1 つはオブジェクトのリストでありPhoto、各PhotoオブジェクトにはIDと がありNameます。モデルのリストを持つカルーセル ビューがありPhotosます。Productビューには、次のようなものがあります。

@if (Model.Photos.Count > 0)
{
    ....
    <a href="javascript:jsFunction()".......

JavaScript では、jsFunction次のようになります。

function jsFunction()
{
  alert('@Html.Action("GetPhotosCarousel", Model.Photos)');
} 

Controller 関数は部分ビューを返します_PhotosCarousel

ここで、@Html.Actionメイン ビューのレンダリング時に実行される問題、NOT ON CLICK

PhotosCarouselページを表示するのではなく、クリックするだけでビューをレンダリングするにはどうすればよいですか?

4

2 に答える 2

1

への実際の呼び出しを削除してjsFunctionから、hrefjQuery で処理することをお勧めします。

<a href="#" id="photoCarouselHref">Click Me</a>

$(document).ready(function(){
    $("#photoCarouselHref").click(function(){
        $.ajax({
            url: '@Url.Action("GetPhotosCarousel"),
            //other ajax settings here
        });
    });
});

jQuery ajax のドキュメントはこちら

于 2012-10-25T15:07:00.227 に答える
0

これを試すことができます:

コードは複数のアンカー要素を持つ準備ができています:

HTML:

<div class="container">

    <a href="@Url.Action("GetPhotosCarousel")" 
        data-id="@Model.Id" 
        data-name="@Model.Name" 
        class="call-get-photos-carousel">click</a>

    <div class="result"></div>

</div>

JS:

$(document).ready(function(){

    $('.call-get-photos-carousel').bind('click', function(event) {

        var 
            _this = this, 
            data = {'Id': $(this).data('id'), 'Name': $(this).data('name')};

        $.get($(this).attr('href'), data,  function(html) {
            $(_this).siblings('.result').html(html);
        });

        return false;
    });
});

ただし、アンカー要素しかない場合は、要素内の ID を次のように操作できます。

HTML:

<div>

    <a href="@Url.Action("GetPhotosCarousel")" 
        data-id="@Model.Id" 
        data-name="@Model.Name" 
        id="call-get-photos-carousel">click</a>

    <div id="result"></div>

</div>

JS:

$(document).ready(function(){

    $('#call-get-photos-carousel').bind('click', function(event) {

        var 
            _this = this, 
            data = {'Id': $(this).data('id'), 'Name': $(this).data('name')};

        $.get($(this).attr('href'), data,  function(html) {
            $('#result').html(html);
        });

        return false;
    });
});

どちらの場合も、アクションはIdおよびの値に送信されますName

于 2012-10-26T12:25:12.127 に答える