转到定义一看,原来不就是我们在开发中经常返回的ActionResult类型吗?...,然后获得了一个returnValue返回值,通过传入返回值创建具体类型的ActionResult作为方法的返回值。...这里需要注意的是,ActionResult是一个抽象类,像什么JsonResult、EmptyResult、ViewResult等都是其子类,而这里的CreateActionResult就是要创建其具体子类的实例并返回...中的Result中,现在继续执行过滤器(比如:可以对刚刚的Action结果进行一些处理),目的也是为了完成AOP的效果,比如执行完Action之后,必须要执行Action结束后的过滤器业务逻辑方法。..."); } ...... } 我们在日常开发中,总是被告知约定大于配置,View中的名字必须与Controller中Action的名字一致
注意:在Asp.Net Web Forms中默认的返回请求是HTML的,如果需要返回其他类型的请求,就必须创建HTTP 处理器,重写内容类型。这些操作在Asp.net中是很困难的。...在Asp.net MVC中是非常简单的。如果返回类型是”String“直接返回,不需要发送完整的HTML。 3. 如果从Action 方法中返回对象值会出现什么意外情况?...Step1 –创建新的Action 方法 在TestController中添加新的Action 方法,如下: 1: public ActionResult GetView() 2: {...单个Action 方法中可引用多个View吗?...ViewResult是HTML响应而ContentResult是标准的文本响应,仅返回字符串类型。区别就在于ContentResult是ActionResult的子类。
创建Upload Action 方法 创建Action 方法,并命名为 “BulkUploadController”,如下: 1: [AdminFilter] 2: public ActionResult...同步请求的响应时间能提升吗? 不可以,响应时间是相同的,线程会被释放来服务其他请求。...实验28——解决线程饥饿问题 在Asp.net MVC中会通过将同步Action方法转换为异步Action方法,将同步请求转换为异步请求。 1....一旦异步操作在Action 方法中完成执行,必须执行worker线程。因此webserver将会新建一个空闲worker 线程,并用来服务剩下的请求,提供响应。 3....运行结果 Action方法会接收到用户输入,并准备好响应数据,然后通过返回语句返回执行结果,返回类型可能是ViewResult或其他。 实验31——实现对用户有好的URL 1.
所有的控制器必须放到Controllers文件夹下; Controller必须为公开类; 所有的控制器类名必须以Controller结尾; 所有的控制器类都应该继承Controller基类或实现IController...接口的类; 在Action中return view(),默认会返回和Action名称一样的视图文件....在控制器类中的返回值为ActionResult的公开方法,这些方法在MVC中称为Action。...四-(1)、Controller中的Action Action用于响应用户的各种请求,比如向客户端返回html文档、html片段、json数据、纯文本、文件等结果。...在ASP.NET MVC中通过在Action(行为或操作)方法中返回ActionResult类型的对象来实现向客户端响应上面的各种结果。
作为Controller基类ControllerBase的Execute方法的核心在于对Action方法的执行和作为方法返回的ActionResult的执行,两者的执行是通过一个叫做ActionInvoker...由于Action方法具有相应的参数,在执行Action方法之前必须进行参数的绑定。ASP.NET MVC将这个机制成为Model的绑定,而这又涉及到另一个重要的组件ModelBinder。...和真正的ASP.NET MVC一样,定义在Contrller的Action方法返回一个ActionResult对象,我们通过指定它的Execute方法是先对请求的响应。...context); 4: } 在之前创建的例子中,Action方法返回的是一个类型为RawContentResult的对象。...MVC是如何运行的[4]: Action的执行
控制器(Controller)类名必须以Controller作为后缀,但是在 ASP.NET Core MVC框架中去掉了这个限制。...)返回类型说明 ASP.NET Core MVC 限定 Action返回类型必须是实现了Microsoft.AspNetCore.Mvc.IActionResult接口的类型,框架本身提供了该接口的默认实现...Microsoft.AspNetCore.Mvc.ActionResult,并提供了ActionResult类的子类,用于输出不同内容格式的需求。...不过在定义Action方法的时候,返回值类型也可以定义成string、int等,这些自定义的返回类型会在返回到响应流之前被框架自动包装到合适的ActionResult子类型中。...常用的ActionResult子类说明 Action返回类型 Controller内置方法 说明 ViewResult View() 将视图数据交由Razor视图引擎渲染 PartialViewResult
,控制器(Controller)类名必须以Controller作为后缀,但是在 ASP.NET Core MVC框架中去掉了这个限制。...)返回类型说明 ASP.NET Core MVC 限定 Action返回类型必须是实现了Microsoft.AspNetCore.Mvc.IActionResult接口的类型,框架本身提供了该接口的默认实现...Microsoft.AspNetCore.Mvc.ActionResult,并提供了ActionResult类的子类,用于输出不同内容格式的需求。...不过在定义Action方法的时候,返回值类型也可以定义成string、int等,这些自定义的返回类型会在返回到响应流之前被框架自动包装到合适的ActionResult子类型中。...常用的ActionResult子类说明 Action返回类型 Controller内置方法 说明 ViewResult View() 将视图数据交由Razor视图引擎渲染 PartialViewResult
不管你是否在session中存储数据,ASP.NET MVC都必须为所有的controller管理 session state,且是耗时的 。...ASP.NET MVC中什么是Action方法? Ans....HttpStatusCodeResult - 返回 HttpStatusCodeResult用来表示指定Http状态。 Q56. ASP.NET MVC中如何标记Non-Action方法?...ASP.NET MVC 将所有的公共方法默认为action方法。 如果不想某个公共的方法被暴露为Action,仅需要用NonActionAttribute标记方法即可。...public ActionResult Index(int?
让Action 方法更安全 在Index action 方法中添加认证属性 [Authorize]. 1: [Authorize] 2: public ActionResult Index...FormsAuthentication.SetAuthCookie是必须写的吗? 是必须写的。让我们了解一些小的工作细节。 客户端通过浏览器给服务器发送请求。...需要为每个Action 方法添加授权属性吗? 不需要,可以将授权属性添加到Controller 层或 Global 层。...创建Logout Action 方法 打开 AuthenticationController 添加新的Logout action方法: 1: public ActionResult Logout...修改 DoLogin 修改 DoLogin action 方法: 1: [HttpPost] 2: public ActionResult DoLogin(UserDetails u)
认证过滤器处理请求中的用户凭证并返回相应的主体。在ASP.NET MVC5之前,使用 authorization filter (授权过滤器)对用户进行认证和授权。...Action Result是BLL或者DAL对用户输入执行相应的操作后的返回结果。...这些返回类型可以分为两类,即ViewResult类型和 NonViewResult 类型。ViewResult 类型主要用于返回并渲染html页面到浏览器。...当路由引擎在路由表中找到一个与传入的Url请求匹配的路由记录,路由引擎会转发请求到对应的Controller、Action中。如果没有匹配的记录,则返回404。 大致处理流程如下图: ? Q16....当仅仅定义了特性路由而没有基于约定的路由时,若某个action未定义特性路由时,该action将不能被成功路由,会返回404。 Q18. 什么时候使用特性路由? Ans.
(1)必须是非静态类 (2)必须实现IController接口 (3)必须是以Controller结尾命名 2.3 无所不能的Action 首先,在一个Controller中可以包含多个...每一个Action都是一个方法, 返回一个ActionResult实例。那么,这个ActionResult是什么东东呢? ? ...这样就解释了,我们在Action中可以不仅可以返回ViewResult还可以返回JsonResult的原因。通过下表,我们可以清晰地看到,ActionResult的各种派生类的详情: ? ...因此,我们既可以在Action中返回视图,还可以返回文件流、重定向、空内容等结果。...但是,在MVC的Action中,微软已经帮我们封装了好了JsonResult,因此,我们可以高兴地感慨:返回Json,So Easy!
res 是请求成功后返回的信息,res.data 是请求成功后服务器返回的信息。即是 action 处理数据后返回的信息。...Action 的参数:[Bind("A,B,C")] TestBind test,刚开始的时候我以为请求的数据中必须包含 A、B、C。 测试后发现不是。。。...1, 查询备忘表 Microsoft.AspNetCore.Mvc 命名空间中,包含控制 MVC 的各种操作方法和类型,笔者从命名空间中抽出与 MVC 或 API 返回类型有关的类型,生成表格: 类型...2, 返回的数据类型 特定类型 IActionResult 类型 ActionResult 类型 Action 的 return ,返回的数据类型必定是上面三种。...API 里的 返回类型需要实例化, new 一下; MVC 里的返回类型,“不需要实例化”。 当然,有些例如 FileResult 是抽象类,不能被实例化。
上,打上上面的标记如下所示: [DemoActionAttributeFilter(Message ="action")] public ActionResult Index() { //Action...总的执行顺序是: Action执行前:OnActionExecuting方法先执行→Action执行→OnActionExecuted方法执行→OnResultExecuting方法执行→返回的ActionRsult...那标签的作用会执行两次吗?...后面是Action返回ActionResult后执行了ExecuteResult方法,但在执行之前要执行Filter。...具体顺序为: 接上面→Controller的OnResultExecuting方法→Action上的OnResultExecuting→Action返回ActionResult后执行了ExecuteResult
ASP.NET MVC中,路由数据必须包含controller和action的名称),再有RouteData获取IRouteHandler最终有IRouteHandler得到IHttpHandler。...Action ASP.NET MVC中ControllerBase是所有Controller的基类,在该类型的Execute方法中通过IActionInvoker的InvokeAction方法来执行对Action...= 30, Controller= 20, First= 0, Global= 10, Last= 100 } ActionResult Action执行完毕之后会返回ActionResult...类型对象作为对此次请求进行处理的结果,对于不是ActionResult类型的返回值,ASP.NET MVC会将其转换为ActionResult类型。...转载必须保留文章的完整性,且在页面明显位置处标明原文链接。 如有问题, 请发送邮件和作者联系。
前面分别介绍了MVC中的三个重要部分,而行为,则是其中C-Controller中的重要内容,下面详解一二。...Action的本质就是类中的公有方法,可以进行重载,要求参数不同。 如下图,ActionResult 和 public的方法同样可以被直接访问到。 ? 可以接受客户端的Get或Post请求。...自动装配的要求:参数的名称或对象类型的属性必须与参数的键相同 返回结果 返回类型为ActionResult,是一个抽象类,需要返回具体类型的结果对象 直接或间接继承自ActionResult的类型 ViewResult...:使用View()可以指定一个页面,也可以指定传递的模型对象,如果没有指定的参数则表示返回与Action同名的页面。...RedirectResult:使用Redirect(string url)将结果转到其他的Action JsonResult:使用Json(object data) 将data序列化为json数据并返回
在Asp.net Core之前所有的Action返回值都是ActionResult,Json(),File()等方法返回的都是ActionResult的子类。...并且Core把MVC跟WebApi合并之后Action的返回值体系也有了很大的变化。 ActionResult类 ActionResult类是最常用的返回值类型。...基本沿用了之前Asp.net MVC的那套东西,使用它大部分情况都没问题。比如用它来返回视图,返回json,返回文件等等。如果是异步则使用Task。...总结 大部分时候Action的返回值可以使用ActionResult/IActionResult 设计restful api的时候可以直接使用POCO类作为返回值 如果要设计既支持POCO类返回值或者ActionResult...类为返回值的action可以使用ActionResult作为返回值 ActionResult之所以能够支持两种类型的返回值类型,是因为使用了implicit operator内置了2
DataAnnotations 允许我们描述希望应用在模型属性上的验证规则,ASP.NET MVC 将会使用这些 DataAnnotations ,然后将适当的验证信息返回给用户。 ... 为了显示加载提示的效果,我们人为地修改一下Action方法,使用Thread.Sleep(3000)来延迟一下请求返回时间 public ActionResult GetServerDate...三、为AOP而生 — ASP.Net MVC默认的过滤器 3.1 过滤器初步 大一点的项目总会有相关的AOP面向切面的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中Action在执行前或者执行后我们想做一些特殊的操作...这里的Result主要是指我们在Action中进行return 语句返回结果时(例如:return Content("Hello Filter!");),之前和之后要执行的逻辑处理。 ...ActionResult Filter() { Response.Write("Action正在努力执行中...
在ASP.NET MVC中,会调用MvcHandler的ProcessRequest()方法,此方法会激活具体请求的Controller类对象,触发Action方法,返回ActionResult实例。...② 花样的返回类型 : ActionResult 以及它的子类们 ? ...在以往的ASP.NET MVC开发中,我们在Action方法的编写中,总会看到它们的返回类型都是以ActionResult为基类的各种Result类型。.../// /// Action统一的返回类型 /// public abstract class ActionResult {...Action : {1}, Id : {2}", controller, action, id), "text/html"); } public ActionResult
我们上边所看到的Action都是return View();我们可以看作这个返回值用于解析一个aspx文件。...而它的返回类型是ActionResult如 public ActionResult Index() { return View();...一、ascx页面 场景:要返回代码片断,比如Ajax返回一个子页 我们先新建一个Action public ActionResult Ascx() {...于是新建了一个ascx页,我们将之少做改写一下 Mvc.ViewUserControl" %> ...} 三、返回Json 有时我们在调用Ajax时还会要求返回对象为Json序列化的结果,如: public ActionResult ShowJson() {
Attribute Routing With ASP.net MVC 5 简介 本文介绍在应用程序中使用 ASP.net MVC 5 Attribute Routing 最新特性; 本文分两部分, 第一部分介绍...Routing 是 ASP.net MVC 将地址映射为 Action 方法的技术。 什么是 Attribute Routing ?...ASP.net MVC 5 支持一种新类型的路由, 称之为 Attribute Routing 。...id = UrlParameter.Optional } ); } } 代码要点 要启用 Attribute Routing ,必须在 RouteConfig.cs 文件中调用...("{action=index}")] public class BookingController : Controller { // eg: /Booking public ActionResult