• MVC4 Model ControllerDescriptor


    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

  • 相关阅读:
    文档视图
    引入缓冲池技术
    数据库访问与查询
    OnInitialUpdate函数
    显示股票视图的全局函数
    切换视图的核心代码
    GuiEdit的使用
    操作方法
    SQL 使用 解析
    调用API 实现 窗体 拖动
  • 原文地址:https://www.cnblogs.com/dragon-L/p/5246686.html
Copyright © 2020-2023  润新知