【问题标题】:jQuery get request in ASP.Net MVC 5jQuery 在 ASP.Net MVC 5 中获取请求
【发布时间】:2018-03-28 01:55:13
【问题描述】:

我正在使用 ASP.Net MVC 5。我有一个包含角色表值的表。 当我单击编辑按钮时,它会发送 jQuery 请求以获取数据并返回 "UMS.Entities.Role" 之类的数据,但我没有从中获取值,但是我从数据库中获取了 rite 响应,但我在 jQuery 中遇到了问题。

function dataForEdit(id) {
  var data = GetRequestedData('/Admin/Role/Edit/' + id);
  $("#create-form").slideDown();
  $('.formEditBtn').slideDown();
  setInputValue('#role-name', data.Name);
  $("#roleID").attr("value", data.RoleId);        
}

GetRequestedData('/Admin/Role/Edit/' + id) 是单独的函数,是单独的文件。

function GetRequestedData(url) { 
  $.ajax({
    url: url,
    async: false,
    type: 'GET',
    success: function (data) {
      resultData = data; // here I am getting this UMS.Entities.Role
    },
    error: function (error) {
      $(this).remove();
      alert(error.statusText);
    }
  });

    return resultData
}

我的控制器功能是

public Role Edit(int id) {
  Role role = _roleService.GetById(id);
  return role;
}

【问题讨论】:

    标签: jquery asp.net json asp.net-mvc-4


    【解决方案1】:

    我认为你应该返回 Json 结果,你可以试试这个吗?

    public ActionResult Edit(int id)
    {
        Role role = _roleService.GetById(id);
        return Json(role , JsonRequestBehavior.AllowGet); 
    }
    

    【讨论】:

      【解决方案2】:

      首先,您使用的是async: false,这是非常糟糕的做法。正确使用异步模式,并在 AJAX 调用完成后使用回调执行逻辑。

      也就是说,您的代码中的主要问题是因为Role 类正在通过ToString() 进行序列化。将其序列化为 JSON 会更适用,如下所示:

      public ActionResult Edit(int id)
      {
          Role role = _roleService.GetById(id);
          return Json(role, JsonRequestBehavior.AllowGet);
      }
      

      然后在您的 JS 代码中,您可以从提供给 success 回调的 data 参数中的 Role 类中检索属性:

      function dataForEdit(id) {
        GetRequestedData('/Admin/Role/Edit/' + id, function(data) {
          $("#create-form, .formEditBtn').slideDown();
          setInputValue('#role-name', data.Name);
          $("#roleID").val(data.RoleId);
        });
      }
      
      function GetRequestedData(url, callback) {
        $.ajax({
          url: url,
          type: 'GET',
          success: callback,
          error: function(error) {
            $(this).remove();
            alert(error.statusText);
          }
        });
      }
      
      GetRequestedData('/Admin/Role/Edit/' + id);
      

      【讨论】:

      • 感谢先生分享您的宝贵经验,这对我帮助很大。
      • @KhizranAhmad 您觉得有必要更改已接受的答案吗?
      猜你喜欢
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多