jQuery 在 ASP.Net MVC 5 中获取请求

Posted

技术标签:

【中文标题】jQuery 在 ASP.Net MVC 5 中获取请求【英文标题】:jQuery get request in 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;

【问题讨论】:

【参考方案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 您觉得有必要更改已接受的答案吗?

以上是关于jQuery 在 ASP.Net MVC 5 中获取请求的主要内容,如果未能解决你的问题,请参考以下文章

Three steps to use jQuery UI in ASP.NET MVC 5

ASP.NET MVC 5和jquery ui datepicker验证

JQuery 数据表不适用于 ASP.NET MVC 5

ASP.NET MVC 5 - jQuery AJAX 有效,Fetch API 无效

当表单在 ASP.NET MVC 5 应用程序中有效时触发 jQuery 函数

部分视图部分适用于 JQuery,但不完全适用于 C# ASP.Net MVC 5