mvc使用JsonResult返回Json数据
介绍MVC中JsonResult返回Json数据的艺术
在MVC架构中,我们经常使用JsonResult来返回Json数据,实现前后端的无缝对接。下面我们就来详细解读一下如何在控制器中使用JsonResult返回数据,以及在页面端如何调用这些数据。
一、控制器中的实现
假设我们有一个UpdateSingle的方法,它需要接受一些参数并返回Json数据。
```csharp
public JsonResult UpdateSingle(int id, string actionName, string actionValue)
{
var res = new JsonResult();
var list = (from a in db.Articles
select new
{
name = a.ArtTitle,
yy = a.ArtPublishTime
}).Take(5);
res.Data = list; //返回列表
// 你可以返回一个自定义的object数组
res.Data = new object[] { new { name = "小华", age = "12" }, new { name1 = "小明", age1 = "15" } };
// 或者返回一个单个对象
var person = new { Name = "狼蚁网络推广", Age = 22, Sex = "男" };
res.Data = person;
// 如果你只需要返回一个简单的字符串,也可以这样做
res.Data = "这是个字符串";
res.JsonRequestBehavior = JsonRequestBehavior.AllowGet; //允许使用GET方式获取
return res;
}
```
二、页面端的调用
在页面的调用中,我们可以使用AJAX来调用这个接口并获取返回的数据。下面是一个简单的示例:
```html
function upclick(o) {
var obj = $(o);
$.ajax({
url: "/Articles/UpdateSingle?ran=" + Math.random(),
type: "GET",
dataType: "json",
data: { id: obj.attr("id"), actionName: obj.attr("actionName"), actionValue: obj.attr("actionValue") },
success: function (data) { //注意这里是success,不是suess
$(o).html(data[0].name); //假设返回的数据是对象数组,这里取第一个对象的name属性
obj.attr("actionValue", data[0].result); //假设返回的数据包含result属性
}
});
}
```
页面数据加载与处理
在网页开发中,我们经常需要处理数据的加载与展示。下面是一个简单的示例,展示了如何在页面加载时获取数据,并在页面上展示这些数据。
我们定义了一个名为`customer`的类,它包含两个属性:`name`和`sex`,分别表示客户的姓名和性别。然后,在页面的`Page_Load`方法中,我们创建了两个`customer`对象,并将它们添加到一个名为`li`的列表中。接着,我们使用Newtonsoft.Json库将列表序列化为JSON字符串。
```csharp
protected void Page_Load(object sender, EventArgs e)
{
var customer = new customer { name = "李华", sex = "男" };
var customer1 = new customer { name = "小芳", sex = "女" };
var li = new List
li.Add(customer);
li.Add(customer1);
var list = Newtonsoft.Json.JavaScriptConvert.SerializeObject(li);
// 将序列化后的JSON字符串存储到某个变量中或直接输出到页面
}
public class customer
{
public string name { get; set; }
public string sex { get; set; }
}
```
接下来,我们在HTML部分定义了一个链接和一个用于显示数据的容器`
```html
点击获取数据:GetJsonDatafunction getJsonData() {
$.getJSON("/Json.aspx", function (data) {
var tt = "";
$.each(data, function (k, v) {
$.each(v, function (kk, vv) {
tt += kk + vv + "
"; // 使用换行标签
实现换行显示数据
});
});
$("dataDiv").html(tt); // 将遍历后的数据展示在
});
}
```这样,当用户点击链接时,页面会通过AJAX请求获取数据,并将数据显示在指定的`
编程语言
- mvc使用JsonResult返回Json数据
- 王菲的音乐之路:如何展现独特个人魅力
- Jsp结合XML+XSLT将输出转换为Html格式
- 带走我的心啊把它藏在行囊
- 使用PHP如何实现高效安全的ftp服务器(二)
- KnockoutJS 3.X API 第四章之事件event绑定
- 使用MySQL实现一个分布式锁
- Vue.js 2.x之组件的定义和注册图文详解
- 使用BootStrap实现表格隔行变色及hover变色并在需要
- 这两天网易啥情况
- 杨宗纬:情歌中的男人,如何触动你的心弦
- 为HttpClient添加默认请求报头的四种解决方案
- 倩女幽魂刘亦菲吻戏
- JavaScript实现弹出DIV层同时页面背景渐变成半透明
- php中文字符串截取多种方法汇总
- vue-cli快速构建项目以及引入bootstrap、jq