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验证
ASP.NET MVC 5 - jQuery AJAX 有效,Fetch API 无效