mvc的Controller返回值类型ActionResult详解

一、简介

ActionResult 

操作方法通过执行工作并返回操作结果来响应用户输入。 操作结果表示框架将代表操作方法执行的命令。 ActionResult 类是操作结果的基类。

以下类型从 ActionResult 派生:

  • ContentResult

  • EmptyResult

  • FileResult

  • HttpUnauthorizedResult

  • JavaScriptResult

  • JsonResult

  • RedirectResult

  • RedirectToRouteResult

  • ViewResultBase

  地址:https://msdn.microsoft.com/zh-cn/library/system.web.mvc.actionresult.aspx?f=255&MSPPError=-2147217396

  我们预览下控制器的基类Controller

  

简单示例

 javascript

<script type="text/javascript"> 
$(function () {$("#ControlId").change(function () {//ControlId为下拉控件IDvar value = $(this).val();//获取到当前选中的值if (value != null) {    //Ajax获取舱位,并设置复选框$.post(          //POST$("#getUrl").val(),  //url{ fmid: value },    //datafunction (data) {   //success:document.getElementById("id_ccl").innerHTML = "";var strHtml = "";var vIsShared = "";for (var key in data) {for (var result in data[key]) {switch (result.toString()) {case "IsShared":{vIsShared = data[key][result];break;}default: break;}}strHtml += "<input type=\"checkbox\" id=\"chk\" " + (vIsShared == true ? " checked=\"checked\" " : " ") + " name=\"chk\" value=\"true\" />";}document.getElementById("id_ccl").innerHTML = strHtml;}, "json" );  //type
            }else alert(value);});});
</script>

MVC Controllor:
[HttpPost]
public ActionResult GetList(int id)
{return Json(eccList);
}
[HttpGet]
public ActionResult GetList(int id)
{return Json(eccList, JsonRequestBehavior.AllowGet);
}

在MVC下,由于对数据的保护,默认情况下request为post,使用GET请求会被阻止。

如果客户端使用get请求,需要设置behavior为JsonRequestBehavior.AllowGet 。

二、IHttpActionResult

1、Json<T>(T content)

 return Json<List<ORDER>>(lstRes);

2、Ok()、 Ok<T>(T content)

 return Ok();
 return Ok<string>(name);

3、NotFound()

  return NotFound();

当需要向客户端返回找不到记录时,有时需要用到NotFound()方法
NotFound()方法会返回一个404的错误到客户端。

4、其他

其他还有一些方法,都有它特定的用途。在此贴出来。

4.1、Content<T>(HttpStatusCode statusCode, T value)

   [HttpGet]public IHttpActionResult GetContentResult(){return Content<string>(HttpStatusCode.OK, "OK");}

向客户端返回值和http状态码。

4.2、BadRequest()

 [HttpGet]public IHttpActionResult GetBadRequest(ORDER order){if (string.IsNullOrEmpty(order.ID))return BadRequest();return Ok();}

向客户端返回400的http错误。

4.3、Redirect(string location)

   [HttpGet]public IHttpActionResult RedirectResult(){return Redirect("http://localhost:21528/api/Order/GetContentResult");}

将请求重定向到其他地方。

 

相关: MVC控制器总结

 

参考:http://www.cnblogs.com/zfdcp-028/p/5788649.html


转载于:https://www.cnblogs.com/xcsn/archive/2013/01/03/2843115.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

栅格布局一般怎么用_建筑混凝土色差大怎么办?用这种方法处理,一般都看不出来...

由于模板锈蚀、脱模剂污染、原材料等原因&#xff0c;建筑混凝土成形后经常会遇到颜色不一致的现象&#xff0c;为此我们总结了混凝土面色差调整施工工艺&#xff0c;可供大家参考使用。一、混凝土面色差调整施工工艺流程及说明基层表面打磨→吸尘器吸尘→湿润墙面→素水泥处理…

Java SimpleTimeZone equals()方法与示例

SimpleTimeZone类的equals()方法 (SimpleTimeZone Class equals() method) equals() method is available in java.util package. equals()方法在java.util包中可用。 equals() method is used to check whether this SimpleTimeZone and the given object (ob) are equals or …

FusionChart完全入门手册4

想不想打造让人震撼的图表系统&#xff0c;想不想做出和别人不一样的图表&#xff0c;从本节起&#xff0c;我就带领大家走入这片神奇的土地&#xff0c;让大家去采摘属于自己的创意之果&#xff0c;我们的目标是------个性无罪&#xff0c;个性万岁&#xff01; 问题三、如何做…

ffplay分析(音频解码线程的操作)

《ffplay的数据结构分析》 《ffplay分析&#xff08;从启动到读取线程的操作&#xff09;》 《ffplay分析&#xff08;视频解码线程的操作&#xff09;》 《ffplay 分析&#xff08;音频从Frame(解码后)队列取数据到SDL输出&#xff09;》 《ffplay分析 &#xff08;视频从Fram…

More Effective C++ (运算符)

4.1&#xff1a;谨慎定义类型转换函数<1>容易的方法是利用一个最新的编译器特性&#xff1a;explicit关键字<2>C编译器把">>"作为一个符号来解释&#xff0c;在两个">"间没有空格&#xff0c;语句会产生语法错误。<3>隐式类型转…

大纲(二)

一、数据结构就是逻辑结构存储结构(物理结构)相应操作(算法实现) 二、逻辑结构 集合1:1 线性结构1:n 树m:n 图 主要是可以画到纸上进行分析的结构图就是逻辑结构&#xff0c;分析问题可以得出唯一一个逻辑结构 三、存储结构(物理结构) 顺序存储结构(例如:线性表)链式存储结…

php微信获取mediaid超出限制_Python实现每日微信自动打卡

众所周知&#xff0c;因为疫情的原因&#xff0c;很多高校和公司都要求员工每日在微信上进行打卡&#xff0c;来汇报自己的当前身体状态和所处地区。但绝大多数情况下&#xff0c;每天打卡的信息其实是不会变的&#xff0c;我们要做的就是进入公众号——自动登录点进打卡页面—…

[原创]INI文件的读写操作

INI文件的读写操作在程序开发中&#xff0c;很多人会把参数保存为ini文件格式&#xff0c;ini文件的一个好处是可以保存为一个结构体主结构&#xff0c;如 [User] Nametest UserIdtest [Server] ServerIp127.0.0.1 ServerPort80 …… 很方便也很容易区分&#xff0c;而且不同节…

Java ResourceBundle keySet()方法及示例

ResourceBundle类keySet()方法 (ResourceBundle Class keySet() method) keySet() method is available in java.util package. keySet()方法在java.util包中可用。 keySet() method is used to get all the existing keys from this ResourceBundle and its super bundles to …

ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)

《ffplay的数据结构分析》 《ffplay分析&#xff08;从启动到读取线程的操作&#xff09;》 《ffplay分析&#xff08;视频解码线程的操作&#xff09;》 《ffplay分析&#xff08;音频解码线程的操作&#xff09;》 《ffplay分析 &#xff08;视频从Frame(解码后)队列取数据到…

绪论(一)

一、问题驱动—>画出唯一的逻辑结构—>定义存储结构—>实现相应的操作 二、算法—>(定义\特点)步骤—>实现—>评价标准 算法有五大特点&#xff1a; 可行性确定性有穷性(有限性)0个或0个以上的输入至少一个以上的输出 评价标准&#xff1a; 时间复杂度 …

利用 dbghelp.dll 生成 dump 文件

dbghelp.dll windows的系统目录system32下&#xff0c;都有dbghelp.dll&#xff0c;但在实际使用时&#xff0c;往往会让exe加载自己目录下的dll&#xff0c;以避免系统目录下的dll版本不一导致的程序异常。 故一般都是用LoadLibrary()的方式加载Dll&#xff0c;先加载当前目录…

pandas 根据列名索引多列数据_Pandas 数据聚合与分组运算[groupby+apply]速查笔记

利用Pandas将数据进行分组&#xff0c;并将各组进行聚合或自定义函数处理。Pandas中Groupby分组与聚合过程导入模块import pandas as pd缩写df表示Dataframe对象分组df.groupby(col1)&#xff1a; 根据col1列将df全部列分组&#xff08;默认&#xff1a;axis0行&#xff09;df[…

杀毒软件对InstallShield编译过程以及安装包运行的影响

版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。在某些情况下&#xff0c;杀毒软件会导致InstallShield编译过程崩溃。比如 McAfee VirusScan Enterprise 8.5.0i版本&#xff0c;在某些情况下会在InstallScript工程编译过程中&#xff0c;将ISSe…

Java FileInputStream close()方法与示例

FileInputStream类close()方法 (FileInputStream Class close() method) close() method is available in java.io package. close()方法在java.io包中可用。 close() method is used to close this FileInputStream and free all system resources linked with this stream. c…

ffplay分析 (视频从Frame(解码后)队列取数据到SDL输出)

《ffplay的数据结构分析》 《ffplay分析&#xff08;从启动到读取线程的操作&#xff09;》 《ffplay分析&#xff08;视频解码线程的操作&#xff09;》 《ffplay分析&#xff08;音频解码线程的操作&#xff09;》 《ffplay 分析&#xff08;音频从Frame(解码后)队列取数据到…

线性结构节点类型(三)

一、线性结构 特点 第一个数据元素没有前驱最后一个数据元素没有后继1:1逻辑上相邻、物理上也相邻 类型 线性表(就是一张二维表)(为主研究对象)栈队列 学习方法 画逻辑结构—>定义存储结构—>实现相应的操作 二、线性表 线性结构 逻辑上的1:1存储结构 顺序存储结…

PL/SQL详细介绍

PL/SQL笔记PL/SQL块中只能直接嵌入SELECT,DML(INSERT,UPDATE,DELETE)以及事务控制语句(COMMIT,ROLLBACK,SAVEPOINT),而不能直接嵌入DDL语句(CREATE,ALTER,DROP)和DCL语句(GRANT,REVOKE) 1.检索单行数据 1.1使用标量变量接受数据 v_ename emp.ename%type; v_sal emp.sal%…

redis 备份导出rdb_Redis数据迁移利器之redisshake

“当需要进行Redis实例或集群数据迁移时&#xff0c;我们可以采用导出/导入的方式进行数据迁移&#xff0c;但当需要做数据异地灾备或双活时&#xff0c;再使用传统的方式就不合适了&#xff0c;我们需要借助工具(如redis-port/redis-shake)来完成。”redis-shake介绍redis-sha…

从Live Space搬家到这里

听说Live Space很快要关闭了&#xff0c;所以从http://peking2toronto.spaces.live.com/搬家到这里。转载于:https://www.cnblogs.com/pentest/archive/2010/08/29/1811726.html