【问题标题】:ASP.NET MVC Ajax function not entering Succes or returning Partial ViewASP.NET MVC Ajax 函数未进入 Success 或返回 Partial View
【发布时间】:2015-12-15 12:39:10
【问题描述】:

Ajax 调用

<div id="partialSummaryDiv">@{Html.RenderPartial("CalendarPartialView");}</div>
<script type="text/javascript">
    function SearchByMonth()
    {
        var x = document.getElementById("MonthInputField");
        if (x.value != "") {
            $.ajax({
                url: '/Employees/SearchWholeMonth',
                type: 'GET',
                data: { "month": x.value, "id": @y },
                error: function (data) {
                    alert('Error!');
                },
                success: function (data) {
                    $('#partialSummaryDiv').html(data);
                    alert("succes");
                }
            });
        }
        else {
            alert('Date not selected!')
        }
    }
</script>

控制器

[HttpGet]
public PartialViewResult SearchWholeMonth(DateTime month,int id)
{
   ...calculations
   return PartialView("CalendarPartialView", TotalList);
}

所以我有这个 ajax 调用和带有部分视图的控制器。 我用断点运行控制器代码,计算和返回的结果是正确的。 问题是我按下按钮后没有结果,没有错误。 在网络上的开发人员控制台中,请求的代码为 200 表示 OK,并且那里也没有错误。 ajax函数没有进入succes,最后什么也没有显示。 请帮忙!类型

在局部视图中我也有 @model List&lt;float&gt; 我正在展示这样的结果

@String.Format("{0} {1}", @i, @Model[j])

编辑!!!!!!!!!!!!!!!!!!!!! ajax/view/controller 工作正常,但部分视图未在详细信息页面上呈现! 我试图在不同的页面上呈现它并且它在那里工作。 我怎样才能让它在详细信息页面上呈现!

【问题讨论】:

  • 您应该在控制器中返回 Json。 Ajax 无法处理 PartialView 结果
  • 我对另一个视图使用了相同的方法,并且它正确地显示了那个视图
  • 您的浏览器可能缓存了来自服务器的以前的不完整结果。尝试直接访问 URL。如果该 URL 返回的数据会频繁更改,您可能需要切换到 POST,否则使用 $.ajaxSetup({ cache: false });
  • 我确实放了 cache:false 并尝试了一个我没有使用过的不同的 id,但它仍然没有工作......
  • 点击按钮时,您是否进入 SearchByMonth 功能?

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


【解决方案1】:

尝试使用 Http 状态码获取回调,如下所示:

         $.ajax({
                url: '/Employees/SearchWholeMonth',
                type: 'GET',
                data: { "month": x.value, "id": @y },
                statusCode: {
                  200: function (data) { 
                          $('#partialSummaryDiv').html(data);
                          alert("succes");
                  },
                  500: function (erro) { alert(erro); }
                 }
            });

【讨论】:

  • 仍然没有显示任何内容
  • 尝试在状态码 200 回调中放置一个“调试器”,看看是否命中。
【解决方案2】:

我不得不删除控制器和视图,然后它才正常工作! 感谢所有试图提供帮助的人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-07
    • 2023-03-26
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多