【问题标题】:Error while binding through ajax call通过ajax调用绑定时出错
【发布时间】:2015-10-21 08:17:08
【问题描述】:

我正在使用此代码在 Asp.Net MVC 中进行 ajax 调用

$.ajax({
        type: "GET",
        url: '@Url.Action("GetAllFacts", "Home")',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            console.log(data);
            //$('#AllFacts_Data').append("<div class='col-md-4'><div class='text-center facts-data-box bg_facts_grey'><div class='inner-div'><span><img src=" + data[0].ImageUrl + " class='image_top '></span><div class='text-center twit-all-content facts-content_blu'>'" + data[0].Content + "'</div></div></div></div>");
            //$('#AllFacts_Data').append("<div class='col-md-4'><div class='text-center facts-data-box bg_facts_grey'><div class='inner-div'><span><img src=" + data[1].ImageUrl + " class='image_top '></span><div class='text-center twit-all-content facts-content_blu'>'" + data[1].Content + "'</div></div></div></div>");
        },
        error: function () {
            alert("Error");
        }
    });

这符合我的 Get 方法 GetAllFacts() 的代码

[HttpGet]
public JsonResult GetAllFacts()
{
    try
    {
        using (var context = new DbDemo())
        {
            var allData_Facts = context.Objblog.Take(2).ToList();
            return Json(allData_Facts, JsonRequestBehavior.AllowGet);
        }
    }
    catch (Exception)
    {

    }
    return Json("false", JsonRequestBehavior.AllowGet);
}

这是我的代码,它正确返回包含 2 个数据的列表,但之后它不会成功方法,它会根据 Ajax 错误函数警告错误。

我哪里错了?

【问题讨论】:

  • 使用您的浏览器工具检查响应(网络选项卡)以查看错误是什么
  • 在控制台 HTML 中显示 System.IO.FileLoadException: Could not load file or assembly 'System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
  • @StephenMuecke 我已经检查了我的System.Web.Mvc 参考版本和Web.config 它是5.0.0.0
  • 浏览您的 web.config 文件并检查所有版本号(可能是绑定重定向的问题),但如果遇到该错误,您甚至不确定如何加载页面。
  • 我将所有参考版本都与我的 Web.Config 的newVersion 匹配。 Ans 此行return Json(allData_Facts, JsonRequestBehavior.AllowGet); 根据我的要求正确返回 2 个数据。

标签: c# asp.net-mvc-4 asp.net-ajax


【解决方案1】:

试一试

  • 从您的项目中删除程序集引用 System.Web.Mvc。
  • 使用 nuget 为您的项目安装 System.Web.Mvc。
  • 验证 Web.config 以确保它具有 System.Web.Mvc 程序集。
  • 运行检查。

祝你好运!

【讨论】:

    【解决方案2】:

    ajax:

    $.ajax({
            type: "GET",
            url: '/Home/GetAllFacts',
            dataType: "json",
            success: function (data) {
                if (data.success) {
                   // connect to server successful and everything's ok
                   // access to server returned data: data.alldata
                } else {
                   // connect to server successful but something went wrong
                   alert(data.ex); // throw exception message
                }
            },
            error: function () {
                // connect to server failure
            }
        });
    

    控制器:

    [HttpGet]
    public ActionResult GetAllFacts()
    {
        try
        {
            using (var context = new DbDemo())
            {
                var allData_Facts = context.Objblog.Take(2).ToList();
                return Json(new { success = true, alldata = allData_Facts }, JsonRequestBehavior.AllowGet);
            }
        }
        catch (Exception e)
        {
            return Json(new { success = false, ex = e.Message }, JsonRequestBehavior.AllowGet);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 2017-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-08
      相关资源
      最近更新 更多