MVC Ajax操作链接复制自己并附加,我该如何修复



我正在使用有序列表设计来制作我的推特应用程序来查看推文。每次我调用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调用,它从控制器操作中获取数据。它在targetid之前插入一个div id。

初始视图是完美的

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

Tweet 1

Tweet 2

etc=其完美且对齐的

你点击网页中的Ajax操作链接,它会出去获取数据,但会添加第二个类似的链接

AJAX更新HTML链接

AJAX更新HTML链接

Tweet 1

Tweet 2//对齐仍然很完美,但您有第二个ajax链接

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

AJAX更新HTML链接

AJAX更新HTML链接

Tweet 1

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

加上推特结果

AJAX更新HTML链接

Tweet 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);
    }

My Desired Behavior是调用控制器的1个ajax链接,数据插入

在没有看到所有代码的情况下,我只能假设您没有对视图进行排序。您的控制器似乎正在返回完整的"索引"视图。如果您将tweet框放入部分视图中,那么ajax操作需要返回该部分视图。

最新更新