如何将自定义字段添加到Json结果-ASP.NET MVC
How to Add Custom Fields to a Json Result - ASP.NET MVC
我正在开发一个能够编辑注册用户信息的管理页面。当我从下拉列表中选择一个用户时,用户的当前信息正在填充以编辑字段。我用Javascript和Json制作的。
到目前为止,这是我的JS代码:
$(document).ready(function () {
$("#UserId").change(function () {
if ($(this).val() != "" && $(this).val() != undefined && $(this).val() != null) {
$.ajax({
type: "POST",
url: "/AdminController/GetUserData",
cache: false,
data: { userid: $(this).val() },
success: function (result) {
$("#EMailAdress").val(result.EMailAdress)
$("#UserName").val(result.UserName)
}
});
}
else {
$("#UserName").val("");
$("#EMailAdress").val("");
}
});
});
正如你所看到的,我正在触发"/AdminController/GetUserData",我有下面的代码:
[HttpPost]
public JsonResult GetUserData()
{
int userid = Convert.ToInt32(Request.Form["userid"]);
MyContext _db = new MyContext();
var userObj = _db.Users.SingleOrDefault(p => p.UserId == userid);
return Json(userObj);
}
现在我必须在同一页面中显示所选用户的当前角色。我可以在我的控制器中访问该角色数据。但我找不到将其添加到JsonResult中的方法。我认为我可以用另一个JS代码触发另一个控制器方法,为用户获取角色数据,但我认为这不是一个好方法。
我是一个发明家,所以如果解决方案很容易,请不要责怪我。。。我希望我说清楚了。如有任何帮助,我们将不胜感激。
您可以定义一个视图模型:
public class MyViewModel
{
public User User { get; set; }
public RoleData Role { get; set; }
}
您的控制器操作将填充:
[HttpPost]
public ActionResult GetUserData(int userId)
{
MyContext _db = new MyContext();
var userObj = _db.Users.SingleOrDefault(p => p.UserId == userId);
var roleData = .....
var model = new MyViewModel();
model.User = userObj;
model.Role = roleData;
return Json(model);
}
请注意控制器操作是如何将userId作为参数的,以避免您编写从请求中解析它的管道代码。这已经由默认的模型绑定器处理了。
在AJAX成功回调中,您可以访问我们定义的视图模型的两个属性(分别为User
和Role
):
success: function (result) {
$("#EMailAdress").val(result.User.EMailAdress);
$("#UserName").val(result.User.UserName);
var roleData = result.Role;
// do something here with the role data
}
相关文章:
- JSON.stringify和Object.keys在同一个对象上产生不同的结果
- 对于每个json结果,使用类jquery添加css
- 从JSON API结果迭代时未定义
- 在Ionic'中显示JSON结果;s系列重复
- 无法将JSON.parse与JSON_encode中的结果一起使用
- 如何将JSON结果设置为'src'共'img'以在ASP.NET MVC4中显示图像
- json-api和错误结果:无法读取属性'长度'的未定义
- JSON返回数组的奇怪结果
- 获取json结果的身份验证问题
- Neo4j结果(JSON格式)创建D3树图
- 无法在AJAX成功访问中显示JSON结果
- 返回带有筛选结果的新JSON对象
- (临时)在Web应用程序中存储JSON搜索结果
- 迭代 JSON 文件并且未在 Javascript 中正确返回结果
- 意外结果,在 ASP.Net 中解析 JSON 对象的数组
- jquery jqgrid 不显示结果,具体取决于 JSON 对象中的参数
- 从Node.js上的mysql结果JSON中获取一个Array值
- 搜索框结果 == JSON 结果
- 正在从自动完成结果Json中删除重复项
- 如何合并两个facebook图api数据结果(JSON)