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. CBV 验证装饰器的使用

    下面是3种方式: from django.shortcuts import render, redirect from django.views import View # Create your v ...

  2. flutter android keystore

      keytool -genkey -v -keystore E:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key     k ...

  3. Proxmox VE 设置备忘

    现在PROXMOX 虚拟机一共两个(使用的是N3700 cpu的一个小机器主要为了省电.) 一个是ROS,经过折腾,IK8速度还不错就是资源占用比较大特比下载数据大时对CPU占用很大:OpenWRT不 ...

  4. spring中bean 的属性id与name

  5. linux进阶与hadoop

    Linux进阶命令: find .  | ls --help | more  grep ll | grep 1.txt   grep -ri  BASH 1.txt   grep -ri BASH   ...

  6. 【LA2238 训练指南】固定分区内存管理 【二分图最佳完美匹配,费用流】

    题意 早期的多程序操作系统常把所有的可用内存划分为一些大小固定的区域,不同的区域一般大小不同,而所有区域的大小之和为可用内存的大小.给定一些程序,操作系统需要给每个程序分配一个区域,使得他们可以同时执 ...

  7. 钉钉开发笔记(5)android系统中html软键盘的适配

    最近项目中发现个别Android手机中存在弹出的软键盘会遮挡输入框的现象,最后自己写了一个方法(如下),问题基本解决. 记录下来,防止忘记.有什么不对的地方欢迎指正.O(∩_∩)O 1 //键盘适配 ...

  8. 利用SHELL脚本修改当前环境变量

    转自http://www.chinaunix.net/old_jh/7/21485.html 1.背景 ---- 在日常的工作中,为了设置一大批环境变量,我们通常编辑了一个shell程序,包含了多个的 ...

  9. 面向对象JS基础

    什么是面向对象?面向对象是一种思想!(废话). 面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法.这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.接下 ...

  10. poi导出excel表格

    package poiexcel; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; ...