1、 ControllerDescriptor 的描述

Controller  的Action 方法有以下一些特性:

1.1 ActionNameAttribute特性  他继承自 System.Web.Mvc.ActionNameSelectorAttribute 抽象类

  ActionNameSelectorAttribute  通过 其 抽象方法 IsValidName   判断指定的Action名称是否与目标Action方法相匹配。

   如下代码片段:

添加了 ActionNameAttribute 特性后 访问Action 就会匹配 ActionName 而不是 ActionNames 注意Aciton方法后面多了个“s”

        [ActionName("ActionName")]
public ActionResult ActionNames()
{
return Json("", JsonRequestBehavior.AllowGet);
}

ActionNameSelectorAttribute  与ActionMethodSelectorAttribute 区别: 两者都有Action筛选的作用, 前者是针对Action名称 后者是针对 请求是否匹配

1.2 ActionMethodSelectorAttribute 的类型有7种(:

    HttpGet,HttpPost,HttpPut,HttpDelete,HttpHead,HttpOption,HttpPatch. 如下代码片段:

     [HttpGet]
public ActionResult HttpMethod()
{
return Content("ActionMethodSelectorAttribute ");
}

1.3 AcceptVerbsAttribute 特性, 其与ActionMethodSelectorAttribute 不同之处在 它可以同时匹配多个HTTP方法,如下代码片段:

    这样就可以同时使用POST 或 GET 方式请求, 如果去掉Get  就只能使用Post请求。

   [AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
public ActionResult AcceptVerbs()
{
return Json("", JsonRequestBehavior.AllowGet);
}

 1.4 NonActionAttribute 特性:

   设置了 NonActionAttribute 特性的 Action 方法 在请求的时候,该方法总是被排除在候选范围之外,如下代码片段

   当添加了NonActionAttribute特性后 访问就会出现 HTTP 404。 错误

 [NonAction]
public ActionResult NonActions()
{
return Content("NonActionAttribute");
}

2.ActionDescriptor

3.ParameterDescriptor

MVC4 Model ControllerDescriptor的更多相关文章

  1. MVC4 Model View Controller分离成独立项目

    适合人群:了解MVC项目的程序员 开发工具:vs2012 开发语言:C# 小项目或功能比较单一的项目可以直接新建一个MVC基本项目类型即可,但随着需求不断迭代,项目的功能模块越来越多,甚至有些模块可以 ...

  2. MVC4 Model ValueProvider

    1. NameValueCollectionValueProvider: ValueProvider 的数据容器一般具有类似字典的结构.NameValueCollection 表示一种 key 和va ...

  3. Spring Boot笔记一

    Spring Boot 入门 Spring Boot 简介 > 简化Spring应用开发的一个框架:> 整个Spring技术栈的一个大整合:> J2EE开发的一站式解决方案: 微服务 ...

  4. .NET MVC4 数据验证Model(二)

      一.概述 MVC分为ViewModel.Control.View,对数据的封装MVC做的很好,确实是不错的WEB框架,针对MVC的ViewModel封装的也是相当的不错,最近做一个MVC的项目,采 ...

  5. ASP.NET MVC4 传递Model到View

    原文发表在:http://www.star110.com/Note/ReadArticle/60641215331146140043.html 开发环境:.NET MVC4 + EF6.0 模型: 1 ...

  6. EF5&MVC4 学习1、创建新的Contoso University Application,并创建Model Class 生成对应的database

    参考:http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/creating-an-entity-framewo ...

  7. MVC4 中的Model显示设置(含显示Shared/DisplayTemplates和编辑Shared/EditorTemplates)

    转载于: MVC4 中的Model显示设置(含显示Shared/DisplayTemplates和编辑Shared/EditorTemplates) 虽然 [Display(Name="XX ...

  8. [转]ASP.NET MVC4中@model使用多个类型实例的方法

    本文转自:http://blog.csdn.net/hulihui/article/details/48199897 有时需要在ASP.NET MVC4的视图的@model中使用多个类型的实例,.NE ...

  9. 【MVC版本】MVC3、MVC4之MODEL验证大比拼

    1.密码验证 MVC3 [System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = &quo ...

随机推荐

  1. Tkinter Relief styles(样式)

      Tkinter Relief styles: 构件的浮雕式是指某些模拟的3-D周围的部件外的影响.下面是一排按钮的屏幕截图展示了所有可能的救济风格   构件的浮雕式是指某些模拟的3-D周围的部件外 ...

  2. Sping实战之通过JAVA代码装配Bean

    尽管在很多场景下通过组件扫描和自动装配实现Spring的自动化配置是更为推荐的方式,但有时候自动化配置的方案行不通,因此需要明确配置Spring.比如说,你想要将第三方库中的组件装配到你的应用中,在这 ...

  3. PHP - 闭包Closure和lambda function

    现在的语言没有闭包简直都不好意思说出来. 想要了解闭包是什么,那么就必须知道匿名函数.其实看起来他们其实差不多一个意思. 见php RFC一句话:   End of 2007 a patch was  ...

  4. hdu1710-Binary Tree Traversals (由二叉树的先序序列和中序序列求后序序列)

    http://acm.hdu.edu.cn/showproblem.php?pid=1710 Binary Tree Traversals Time Limit: 1000/1000 MS (Java ...

  5. Python 生成MYSQL inser语句

    背景: 一般来说,navicat生成的insert已经够用了 如果说一张表有2,30个字段,每个字段还得一一对上,其实是很难的.所以抽空写了个小程序.用它完全不用担心字段对不上了.因为没有时间,需要手 ...

  6. source insight 保存时删除多余空格,去除多余空格 space tab键

    source insight 保存时删除多余空格,去除多余空格 space tab键 摘自:https://blog.csdn.net/lanmanck/article/details/8638391 ...

  7. Oracle 递归

      当对象存在父节点.子节点时,通过特定的方式获取父节点.子节点数据构建树状结构或其它形式结构时,通常都会使用递归,如:一个公司有多个部门.每个部门下可能有多个小部门,小部门下面又有组-.为了数据容易 ...

  8. 通过input上传图片,判断不同浏览器及图片类型和大小的js代码

    1.jsp页面代码 <form id="userPhoto" name="userPhoto" method="post" actio ...

  9. python CSV 文件的读写

    1.CSV文件 import csv with open(r"E:\code\0_DataSet\tianchi_2015_mobile_recommand\fresh_comp_offli ...

  10. Python2.7.9 编码问题

    最近学一学网络爬虫,遇到第一件头疼的事情就是编码问题, 看了很多教程讲得不清楚, 现在整理一下,希望以后查看方便一些 使用   sys.getdefaultencoding()   查看Python的 ...