Ajax请求在ASP MVC中返回重复的搜索结果

时间:2016-03-30 08:20:00

标签: asp.net ajax asp.net-mvc asp.net-ajax

我在我的asp应用程序上使用了样本ajax请求,但是它从数据库返回了dublicated数据。已经尝试使用断点进行调试,但没有任何作用。我认为我的Controller代码存在问题,但我无法理解。

这是我在Controller中的ajax请求的代码:

if (Request.IsAjaxRequest())
{
    var messs1 = db.Messages
     .Where(m => m.UserAddressat.Id == us.Id && m.UserAuthor.Name == User.Identity.Name)
     .ToList();

    var messs2 = db.Messages
     .Where(m => m.UserAddressat.Name == User.Identity.Name && m.UserAuthor.Id == id)
     .ToList();

    MessagingModel model2 = new MessagingModel();

    model2.OldMessages = messs1.Union(messs2)
     .OrderByDescending(s => s.CreatedDate)
     .Skip(20)
     .Take(20)
     .Reverse();

    return PartialView("_Messaging", model2);
}

我的部分观点" _Messaging":

@model BloodBank.Models.MessagingModel

@if (Model.OldMessages != null)
{
    foreach (var message in Model.OldMessages)
    {
        if (message.UserAuthor.Name == User.Identity.Name)
        {
            <p>
                <b style="float:left">@message.UserAuthor.Name  @message.UserAuthor.Lastname: </b>
                <div class="MessTo">
                    @message.Value <br /> <i class="messageDateDiv">@message.CreatedDate.ToUniversalTime()</i>
                </div>
            </p>
        }
        else
        {
            <p>
                <b style="float:left">@message.UserAuthor.Name  @message.UserAuthor.Lastname: </b>
                <div class="MessFrom">
                    @message.Value  <br /><i class="messageDateDiv">@message.CreatedDate.ToUniversalTime()</i>
                </div>

            </p>
        }
    }
}

页面加载时我只收到20条消息数据(HttpGet)。 Ajax请求用于异步从数据库获取20条旧消息。但问题是,如果我有22个数据,在Ajax请求上我得到4个消息而不是2个(例如我得到&#34; 21 22 21 22&#34;而不是&#34; 21 22&#34;) 。断点告诉我,当代码仍然是Controller的结束并将数据返回到partialview时,它返回到控制器代码的顶部并以相同的方式再次开始。我无法弄清楚发生了什么。

0 个答案:

没有答案