0

ここで他のいくつかの投稿を読んだ後、リンクのクリックで部分ビューを読み込もうとして、ここまで来ました (この概念実証段階を過ぎると、テキスト リンクは実際には画像に変わる可能性があります)。問題は、リンクをクリックしているビュー内に div を設定するのではなく、クリックすると部分ビューに移動することです。

レイアウト:

<script src="@Url.Content("~/scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

景色:

 @Ajax.ActionLink("Item 1 Ajax", "Details", "Portfolio", new { name = "test" }, new AjaxOptions
                        { 
                            HttpMethod = "Post",
                            InsertionMode = InsertionMode.Replace,
                            UpdateTargetId = "row1Content",
                            OnComplete = "portfolioItemLoaded"
                        })

<div id="row1content"></div>

<script type="text/javascript">
        function portfolioItemLoaded() {
            alert("Done");
        }
    </script>

コントローラー:

public class PortfolioController : Controller
    {
        public ActionResult Details(string name)
        {
            return PartialView(name);
        }
    }

部分 (明らかに test.cshtml という名前):

<p>Item 1 test</p>

明らかな何かを見逃しましたか?MVC で AJAX を使用しようとしたのはこれが初めてなので、学校の男の子のエラーが 1 つまたは 2 つある可能性があります。

異なる部分ビューを呼び出すいくつかの異なる Ajax アクション リンクを用意することを計画しているため、コントローラーに名前を渡しています。

4

1 に答える 1

3

コード修正

これを試してみますか、エラーなどの場合はより適切に制御できます.... HTML with helper

@Html.ActionLink("Item 1 Ajax", "Details", "Portfolio", Nothing, New With {.Id = "myLink"})

JavaScript

    <script type="text/javascript">

$(document).ready(function() {

    $('#myLink').click(getIt);

});

function getIt() {
        $.ajax({
            type: "POST",
            url: $(this).attr('href'),
            error: function () { 
                //show error handler
                },
            success: function (r) {
                $('#row1content').html(r);
            }
        });

        return false;
    }

</script>
于 2013-03-14T18:00:24.793 に答える