在本章中,无涯教程将讨论Action输出,在前面的章节中,一直在使用简单的简单C#类作为控制器,这些类不是从基类派生的,您可以将这种方法与MVC一起使用,但是从Microsoft.AspNet.Mvc命名空间中提供的控制器基类派生控制器更为常见。
ActionResult类是所有操作输出的基础,以下是不同类型的操作输出及其行为的列表。
名称 | 行为 |
---|---|
ContentResult | 返回字符串 |
FileContentResult | 返回文件内容 |
FilePathResult | 返回文件内容 |
FileStreamResult | 返回文件内容 |
EmptyResult | 不返回任何内容 |
JavaScriptResult | 返回执行脚本 |
JsonResult | 返回JSON格式的数据 |
RedirectToResult | 重定向到指定的URL |
HttpUnauthorizedResult | 返回403 HTTP状态代码 |
RedirectToRouteResult | 重定向到其他操作/不同的控制器操作 |
ViewResult | 已收到视图引擎的响应 |
PartialViewResult | 已收到视图引擎的响应 |
让无涯教程通过打开 HomeController 类并从基于控制器的类中派生一个简单的示例,该基类位于 Microsoft.AspNet.Mvc 命名空间中。
using Microsoft.AspNet.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace FirstAppdemo.Controllers { public class HomeController : Controller { public ContentResult Index() { return Content("Hello, World! this message is from Home Controller using the Action Result"); } } }
现在,您可以看到index方法正在返回ContentResult,它是输出类型之一,并且所有这些输出类型最终实现了一个接口,即 ActionResult 。
在Index方法中,已将字符串传递到Content方法中,这个Content方法产生一个ContentResult,这意味着Index方法现在将返回 ContentResult 。
保存 HomeController 类,然后在浏览器中运行该应用程序,它将产生以下页面。
再举一个例子。在项目中创建一个新文件夹,并将其命名为 Models 。在"Models"文件夹中,要添加一个可以表示Employee的类。
链接:https://www.learnfk.comhttps://www.learnfk.com/asp.net_core/asp.net-core-action-results.html
来源:LearnFk无涯教程网
如上面的屏幕截图所示,在"Name"字段中输入 Employee.cs 。在这里,Employee类的实现包含两个属性。
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace FirstAppDemo.Models { public class Employee { public int ID { get; set; } public string Name { get; set} } }
在 HomeController 的Index操作方法中,想返回一个Employee对象,以下是HomeController的实现。
using FirstAppDemo.Models; using Microsoft.AspNet.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace FirstAppdemo.Controllers { public class HomeController : Controller { public ObjectResult Index() { var employee = new Employee { ID = 1, Name = "Mark Upston"}; return new ObjectResult(employee); } } }
现在,返回另一种类型的输出,称为 ObjectResult ,如果需要ObjectResult,则需要创建或实例化ObjectResult并将一些 model 对象传递给它。
ObjectResult在MVC框架中是特殊的,因为当返回ObjectResult时,MVC框架会查看该对象。
该对象应该序列化为XML或JSON或其他某种格式,最终,将根据您在启动时提供给MVC的配置信息来做出决定,默认值为JSON输出。
保存所有文件并刷新浏览器。您将看到以下输出。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)