0

我正在使用有序列表设计来制作我的推特应用程序来查看推文。每次我调用 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>

控制器只是 Home/Index 上的一个基本可枚举列表

这是行为

假设您有一个从控制器操作中获取数据的 ajax 调用。它在一个 div id 的 targetid 之前插入。

初步的看法是完美的

AJAX UPDATE HTML LINK // 点击它让控制器调用 ajax 并获取数据

推文 1

推文 2

等 = 它的完美和对齐

您单击网页中的 Ajax 操作链接,它会出去并获取数据,但会像这样添加第二个

AJAX 更新 HTML 链接

AJAX 更新 HTML 链接

推文 1

Tweet 2 // 对齐仍然是完美的,但你有第二个 ajax 链接

现在第三次单击 ajax 链接 // 对齐仍然是完美的,但是您在顶部有第二个 ajax 链接,一个夹在中间

AJAX 更新 HTML 链接

AJAX 更新 HTML 链接

推文 1

Tweet 2
// 对齐仍然是完美的,但是您在顶部有第二个 ajax 链接,一个夹在中间

加上推文结果

AJAX 更新 HTML 链接

推文 1

Tweet 2 // 对齐仍然是完美的,但是您在顶部有第二个 ajax 链接,并且在 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 回答