博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET MVC中多种ActionResult用法总结
阅读量:6968 次
发布时间:2019-06-27

本文共 4130 字,大约阅读时间需要 13 分钟。

最近一段时间做了个ASP.NET MVC4.0的项目,项目马上就要结束了,今天忙里偷闲简单总结一下心得:

1. 如果Action需要有返回值的话,必须是ActionResult的话,可以返回一个EmptyResult,Demo实例如下:

/// /// /// /// 
EmptyResult
public ActionResult EmptyActionResult(){ Response.Write("This is a string content"); return new EmptyResult();}
View Code

2. 如果需要转向指定的页面的话,转向一个指定的url,返回类型为RedirectResult,Demo实例如下:

/// /// Controller.Redirect(),转向一个指定的url/// /// 
RedirectResult
public ActionResult RedirectResult(){ return base.Redirect("~/Controllers/DestinationController");}
View Code

3.如果需要转向一个指定的Action,返回类型为RedirectToRouteResult,Demo实例如下:

/// /// Controller.Redirect(),转向一个指定的Action/// /// 
RedirectToRouteResult
public ActionResult RedirectToRouteResult(){ return base.RedirectToAction("DestinationOController");}
View Code

4.如果需要将指定的对象以JSON串的形式返回,返回类型为JsonResult,Demo实例如下:

/// /// Controller.Json(),将对象以Json的形式返回/// /// 
JsonResult
public ActionResult GetJsonResult(){ var jsonObj=new {Name:"Test Name";Age:25}; return base.Json(jsonObj);}
View Code

5. 如果需要返回一段Javascript代码,返回类型为JavascriptResult,Demo实例如下:

/// /// Controller.JavaScript(),将对象以Javascript脚本的形式返回/// /// 
JavaScript
public ActionResult GetJavascriptResult(){ return base.JavaScript("alert('This is JavaScript result')");}
View Code

6. 如果需要输出一段指定的内容,返回类型为ContentResult,Demo实例如下:

/// /// Controller.Content(),将对象以ContentResult的形式返回/// /// 
ContentResult
public ActionResult ContentResult(){ string contentString = string.Format("{0}", "This is content result"); return base.Content(contentString);}
View Code

7. 如果需要将一个文件以字节输入的格式输入,返回类型为FileContentResult,Demo实例如下:

/// /// Controller.Content(),将对象以byte[]的形式返回/// /// 
FileContentResult
public ActionResult FileContentResult(){ FileStream fs = new FileStream(Request.PhysicalApplicationPath + "Content/loading.gif", FileMode.Open); int length = (int)fs.Length; byte[] buffer = new byte[length]; fs.Read(buffer, 0, length); fs.Close(); return base.File(buffer, "image/gif");}
View Code

8. 如果需要将一个文件以文件流的格式输出,返回类型为FileStreamResult,Demo实例如下:

/// /// Controller.Content(),将对象以FileStream的形式返回/// /// 
FileStreamResult
public ActionResult FileStreamResult(){ FileStream fs = new FileStream(Request.PhysicalApplicationPath + "Content/loading.gif", FileMode.Open); return base.File(fs, @"image/gif");}
View Code

9. 如果需要返回未经授权浏览状态的结果,返回类型为HttpUnauthorizedResult,Demo实例如下:

/// /// HttpUnauthorizedResult - 响应给客户端错误代码 401(未经授权浏览状态),/// 如果程序启用了 Forms 验证,并且客户端没有任何身份票据,则会跳转到指定的登录页/// /// 
HttpUnauthorizedResult
public ActionResult HttpUnauthorizedResult(){ return new HttpUnauthorizedResult();}
View Code

10. 如果需要返回html页面的部分[.ascx],返回对象的类型为PartialViewResult,Demo实例如下:

/// /// Controller.PartialView(),查找PartialView,即 .ascx 文件/// /// 
PartialView
public ActionResult PartialViewResult(){ return base.PartialView();}
View Code

11. 如果需要返回完整的Html,即完整的View,返回的类型了ViewResult,Demo实例如下:

/// /// Controller.View(),查找View,即.aspx 文件/// /// 
ViewResult
public ActionResult ViewResult(){ // 如果没有指定 View 名称,则寻找与 Action 名称相同的 View return base.View();}
View Code

12. 使用Get方式调用Action,返回类型为参数为空的ViewResult,Demo程序实例如下:

/// /// 用于演示 Get 方式调用 Action/// id 是根据路由过来的;param1和param2是根据参数过来的/// /// 
[AcceptVerbs(HttpVerbs.Get)]public ActionResult GetDemo(int id, string param1, string param2){ ViewData["ID"] = id; ViewData["Param1"] = param1; ViewData["Param2"] = param2; return View();}
View Code

14. 处理上传文件的Action,Demo实例如下:

/// /// 处理上传文件的 Action/// /// 与传过来的 file 类型的 input 的 name 相对应[AcceptVerbs(HttpVerbs.Post)]public ActionResult UploadFile(HttpPostedFileBase file1){    // Request.Files - 获取需要上传的文件。当然,其也会自动映射到同名参数    // HttpPostedFileBase hpfb = Request.Files[0] as HttpPostedFileBase;        string targetPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "Upload", Path.GetFileName(file1.FileName));    file1.SaveAs(targetPath);    return View("UploadDemo");}
View Code

待完善。。。

转载于:https://www.cnblogs.com/chengbing2011/p/4223329.html

你可能感兴趣的文章
shell 字符串操作(长度,查找,替换)详解
查看>>
poj 3261 后缀数组 找反复出现k次的子串(子串能够重叠)
查看>>
lvs中dr模式配置脚本
查看>>
Perceptron Algorithm 感知器算法及其实现
查看>>
算法笔记
查看>>
Wrong permissions on configuration file, should not be world writable!
查看>>
Windows操作系统安全加固
查看>>
4.27会议记录
查看>>
vue2.0 rem运行环境搭建
查看>>
python - DBUtils 连接池减少oracle数据库的连接数
查看>>
java基础面试题:抽象类中是否可以有静态的main方法?
查看>>
Okhttp 使用与debug时留的大坑
查看>>
Unix环境高级编程(一)文件I/O
查看>>
Linux下connect超时处理
查看>>
C#开发中碰到的问题------Uncaught TypeError: Cannot read property 'style' of undefined
查看>>
ORCAD常用元件库说明
查看>>
匿名函数 闭包
查看>>
PHP 缓存插件之 Zend Opcache ( 取代 APC )
查看>>
Essential Studio for mobile MVC中2种添加移动图表到MVC3 ASPX应用程序中的方法
查看>>
【转】Java字符串与字符集的基本概念
查看>>