首先解释一下ActionResultIActionResult

ActionResult一般用来返回ViewResult,PartialViewResult,JsonResult

IActionResult一般用来返回预定义响应和错误,比如404

MVC里面如果直接将数据返回到前端页面,我们常用的方式就是用return view();

那么我不想直接用razor语法,毕竟razor这玩意儿实在是太难记了,还不如写ajax对接来得舒服不是

那么我们可以这么做

1.定义ActionResult,返回json,标记属性可以采用HttpPost,也可以是用HttpGet,按自己的需求来使用

 public ActionResult UpdateDownloadInJson(string deviceNames,string programNames)
{
string[] deviceName = deviceNames.Split(',');
string[] programName = programNames.Split(',');
List<DownloadViewModel> DownloadViewModelList = new List<DownloadViewModel>();
foreach (string tempDeviceName in deviceName)
{
var _deviceId=deviceInfoService.FindSingle<DeviceInfo>(r => r.DeviceName == tempDeviceName).Id;
foreach (string tempProgramName in programName)
{
int _programId = publishDetailService.Set<ProgramInfo>().Where(r => r.ProgramName == tempProgramName).FirstOrDefault().Id;
var progress= publishDetailService.Set<DeviceMaterial>().Where(r => r.DeviceId == _deviceId && r.ProgramId == _programId).FirstOrDefault().DownProgress;
DownloadViewModelList.Add(new DownloadViewModel
{
DeviceId= (int)_deviceId,
DeviceName = tempDeviceName,
ProgramName = tempProgramName,
DownloadProgress = (int)progress
});
}
}
return Json(new AjaxResult
{
Result = DoResult.Success,
RetValue = DownloadViewModelList
}, JsonRequestBehavior.AllowGet);
}

2.采用JsonResult,最主要拿来处理ajax请求

[HttpPost]
[HandlerAjaxOnly]
public JsonResult CheckLogin(string username, string password, string code)
{
UserManage.LoginResult result = this.HttpContext.UserLogin(username, password, code);
if (result == UserManage.LoginResult.Success)
{
return Json(new AjaxResult { Result = DoResult.Success, DubugMessage = "登陆成功。" });
}
else
{
return Json(new AjaxResult { Result = DoResult.Faild, DubugMessage = "登陆失败," + result.ToString() });
}
}

具体的区别后续补充,用法基本就是这样。

PS:

补充部分:

IActionResult的具体使用

在具体定义时,可以看到,返回的结果是不一样的,这里可以返回预定义的响应,及一些错误

 public IActionResult Update(string id, Movie imovie)
{
var imovie = _movieService.Get(id);
if (imovie== null)
{
return NotFound();
}
_movieService.Update(id, imovie);
return NoContent();
}

MVC中返回json数据的两种方式的更多相关文章

  1. Spring MVC中返回JSON数据的几种方式

    我们都知道Spring MVC 的Controller方法中默认可以返回ModeAndView 和String 类型,返回的这两种类型数据是被DispatcherServlet拿来给到视图解析器进行继 ...

  2. JavaWeb 返回json数据的两种方式

    1.说明 由于一般情况下,由浏览器(前端)发送请求,服务器(后台)响应json数据,所以这里结合js进行说明: A服务器发送请求至B服务器,并接收其返回的json数据,见文末推荐,这里不再赘述! 2. ...

  3. 【代码笔记】iOS-向服务器传JSON数据的两种方式

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

  4. spring mvc 返回json数据的四种方式

    一.返回ModelAndView,其中包含map集 /* * 返回ModelAndView类型的结果 * 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式 ...

  5. Asp.net Web API 返回Json对象的两种方式

    这两种方式都是以HttpResponseMessage的形式返回, 方式一:以字符串的形式 var content = new StringContent("{\"FileName ...

  6. Java解析Json数据的两种方式

    JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据. 使用以上两种方式解析json ...

  7. SpringMVC返回json数据的三种方式

    1.第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew. 如:<bean id="defaultJsonView" cla ...

  8. SpringMVC返回json数据的三种方式(转)

    原文:https://blog.csdn.net/shan9liang/article/details/42181345# 1.第一种方式是spring2时代的产物,也就是每个json视图contro ...

  9. 【spring】 SpringMVC返回json数据的三种方式

    配置方法一 **1.导入第三方的jackson包,jackson-mapper-asl-1.9.7.jar和jackson-core-asl-1.9.7.jar. 2.spring配置文件添加** & ...

随机推荐

  1. ESP-IDF版本2.1.1

    版本2.1.1是一个错误修复版本.它包括对KRACK和BlueBorne漏洞的修复. 版本2.1.1的文档可在http://esp-idf.readthedocs.io/en/v2.1.1/上找到. ...

  2. PICE(5):MongoDBStreaming - gRPC -MGO Service

    我在前面提到过MongoDB不支持像SQL般字符式的操作指令,所以我们必须对所有的MongoDB操作指令建立protobuf类型才能支持MongoDB指令的序列化.在对上一篇博文里我们把MongoDB ...

  3. kali渗透windowsXP过程

    文章来源i春秋 这只是一个演示我自己搭建的环境,但是成功率非常高的,对方可以是其系统,首先我开启kali在打开kali终端输入nmap –sP 192.168.1.1/24 这里的ip是我的网关地址你 ...

  4. mysql之CREATE DATABASE Syntax(创建数据库)

    一:语法 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name #SCHEMA是DATABASE的同义词 [IF NOT EXITTS]可防止建库是已经 ...

  5. redis lru实现策略

    转载自http://blog.chinaunix.net/uid-20708886-id-5753422.html 在使用redis作为缓存的场景下,内存淘汰策略决定的redis的内存使用效率.在大部 ...

  6. SSM工作流程的大致理解

    //不是根据源码来理解的,所以细节有省略.. 首先从在浏览器输入URl的那一刻开始 例如输入 localhost:8080/MyProject/listCategory 初始化: 此时tomcat已经 ...

  7. “玲珑杯”ACM比赛 Round #18---图论你先敲完模板(DP+思维)

    题目链接 DESCRIPTION INPUT OUTPUT SAMPLE INPUT 2 3 2 3 5 7 3 10 3 5 7 SAMPLE OUTPUT 12 26 HINT 官方题解: 代码如 ...

  8. (转)mtr命令详解诊断网络路由

    原文:https://blog.51cto.com/6226001001/1941355 http://www.zzbiji.com/2212.html----Linux下使用mtr做路由图进行网络分 ...

  9. (原创)UML要点总结

    今天我们总结要点: 我们就从这张图慢慢讲. 一.类图部分 基础: 类图→长方形表示.类名在最上栏,下面是数据,第三栏是方法.其存在两种关系:关联和泛化 属性: 全形:  可见性  名:类型     重 ...

  10. JVM笔记11-类加载器和OSGI

    一.JVM 类加载器: 一个类在使用前,如何通过类调用静态字段,静态方法,或者new一个实例对象,第一步就是需要类加载,然后是连接和初始化,最后才能使用. 类从被加载到虚拟机内存中开始,到卸载出内存为 ...