0

注文リストのデザインを使用して、Twitterアプリでツイートを表示しています。ajaxインサートを呼び出すたびに、ページにajaxリンクの別のコピーが配置されます。コントローラーから次のツイートのセットを取得し、それらを挿入して整列させようとしています。タグを動かしてみましたが、追加のajaxボタンが表示され続けます。

それがcssの問題だと思って、私はそれをすべて取り除いた。問題はありませんでした。コードブロックの前後に終了タグと開始タグを配置するには、リストを再フォーマットする必要があります。

部分ビューに配置しようとしたところ、ajaxコードをレイアウトに配置しました。

Ajaxアクションリンク

       @Ajax.ActionLink("Update Tweets", "Index", "Home",
            new AjaxOptions
            {
                UpdateTargetId = "TweetBox",
                InsertionMode = InsertionMode.InsertBefore,
                HttpMethod = "Get",


            })

部分図

   <div id="TweetBox">
    <div class="TwitterMessageBox">
    <ol>
        <li class="TweetLineBody">
            @foreach (var item in Model)
            {   

                @Html.Hidden(item.StatusId, item.StatusId)
                <div class="TwitProfileImage">
                    <img src=@Url.Content(item.ImageUrl) alt="@item.ScreenName" />
                </div>
                <div class="TwitRealName">
                    @item.User
                </div>
                <div class="TwitNickName">
                    @MvcHtmlString.Create(@Html.Namify(@item.ScreenName))
                </div>
                <div class="TweetText">
                    @MvcHtmlString.Create(@item.Tweet)</div>
                <div class="TweetTime">
                    @Html.RelativeDate(@item.Created)</div>
                <div class="TweetRating">
                    Rating</div>



            }
        </li>
       </ol>
     </div>
     </div>

コントローラは、ホーム/インデックスの基本的な列挙可能なリストです。

これが動作です

コントローラーアクションからデータを取得するajax呼び出しがあるとします。dividであるtargetidの前に挿入します。

最初のビューは完璧です

AJAX UPDATE HTML LINK //クリックすると、コントローラーがajaxを呼び出し、データを取得します

ツイート1

ツイート2

etc=完璧で整列している

あなたはあなたのウェブページのAjaxアクションリンクをクリックします、それは出て行ってデータを取得しますが、このような秒を追加します

AJAX UPDATE HTML LINK

AJAX UPDATE HTML LINK

ツイート1

Tweet 2 //配置はまだ完璧ですが、2番目のajaxリンクがあります

ここで、ajaxリンクを3回クリックします//アライメントはまだ完璧ですが、上部に2番目のajaxリンクがあり、1つは挟まれています

AJAX UPDATE HTML LINK

AJAX UPDATE HTML LINK

ツイート1

Tweet 2
//配置はまだ完璧ですが、上部に2番目のajaxリンクがあり、1つは挟まれています

さらに、ツイートの結果

AJAX UPDATE HTML LINK

ツイート1

Tweet 2 //配置はまだ完璧ですが、上部に2番目のajaxリンクがあり、3番目のリストが2/3に挿入されています

リクエストごとのコントローラーコード:

public class HomeController : Controller
{
    //

    // GET: /Home/
    private TwitterContext twitterCtx;

    public ActionResult Index()
    {


        twitterCtx = new TwitterContext();

        List<TweetViewModel> friendTweets = (from tweet in twitterCtx.Status
                                             where tweet.Type == StatusType.Public
                                             select new TweetViewModel
                                             {
                                                 ImageUrl = tweet.User.ProfileImageUrl,
                                                 UserId = tweet.UserID,
                                                 User = tweet.User.Name,
                                                 ScreenName = tweet.User.Identifier.ScreenName,
                                                 StatusId = tweet.StatusID,
                                                 Tweet =     HomeController.AddWebAndTwitterLinks(tweet.Text),
                                                 Created = tweet.CreatedAt

                                             })
   .ToList();

        return View(friendTweets);
    }

私の望ましい動作は、コントローラーを呼び出すための1つのajaxリンクであり、データが挿入されます

4

1 に答える 1

0

すべてのコードを見ずに、私はあなたがあなたの見解を整理していないと仮定することができるだけです。コントローラが完全なインデックスビューを返しているようです。ツイートボックスを部分ビューに配置する場合、ajaxアクションはその部分ビューを返す必要があります。

于 2012-03-06T22:13:48.840 に答える