1

MVC サイトに Ajax 機能を追加しようとしましたが、ページの更新に関する問題が発生しました。ホームページのサイドバーに RSS ビューを作成しました。これにより、ユーザーはドロップダウン リストを使用して表示したい RSS フィードを選択できます。最初は mvc で html.begin フォーム オプションを使用していましたが、ページ全体を更新するのではなく、RSS フィーダーを更新する方がクールな機能だと判断しました。ajax.begin フォームを実装しましたが、ページ全体がまだ更新されていません。

私のビュー内のコードは次のとおりです。

<div class="rss_feed">
    <h3>RSS Feed</h3>

    @using (Ajax.BeginForm("Index", "Home",
        new AjaxOptions
        {
            HttpMethod = "post",
            UpdateTargetId = "feedList"
        }))
    {
        @Html.DropDownListFor(x => x.SelectedFeedOption, Model.FeedOptions)
        <input type="submit" value="Submit" /> 
    }

    <div id="feedList">
        @foreach (var feed in Model.Articles)
        {
            <div class="feed">
                <h3><a href="@feed.Url">@feed.Title</a></h3>
                <p>@feed.Body</p>
                <p><i>Posted @DateTime.Now.Subtract(@feed.PublishDate).Hours hour ago</i></p>
            </div>   
        }
    </div>
</div>

ユーザーがドロップダウン メニューからフィード タイプを選択し、送信ボタンをクリックすると、選択したオプションにフィードが更新されます。

_Layout ビューでは、次のバンドルが読み込まれます。

@Scripts.Render("~/bundles/jquery")

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

0

これにはjqueryでajax呼び出しを使用します

$('#SelectedFeedOption').change(function() {
    $.ajax({
        url: "@(Url.Action("Action", "Controller"))",
        type: "POST",
        cache: false,
        async: true,
        data: { data: $('#SelectedFeedOption').val() },
        success: function (result) {
            $(".feedList").html(result);
        }
   });
});

次に、feedList div の内容を部分ビューとコントローラーに配置します。

public PartialViewResult FeedList(string data){
    Model model = (get search result);
    return PartialView("_feedList", model);
}

うまくいけば、これが役に立ちます。

于 2013-10-01T01:56:14.807 に答える