• AP.NET MVC : 控制器 和 控制器Actions


    ASP.NET includes the following types for MVC development:

    • IController. 这个类定义了 controller 类的约定。
      Controller. 这是一个controller 基类,提供基本的MVC处理。

    • Note
      要对控制器和控制器action进行安全访问你可以使用 PrincipalPermissionAttribute 类.

    所有的controller类都要以“Controller”作为命名的后缀,而且都必需继承自"Controller"基类。

    MVC framework(MVC2)认为所有的公共方法都是action方法。所以,如果你你的控制器类中包含一个不是action方法的public方法,你必需用NonActionAttribute特性来标记它。

    Action方法参数
    默认情况下,action方法的参数是从请求的数据集合中检索的。数据集合包括 data,query string,cookie中的名/值对。
    controller基类定位action方法,并基于RouteData实例来决定那些参数用于该方法。如果参数值不能被解析,引用类型或者可空类型则传递NULL值,否则抛出一个异常。

    有好几种途径在控制类中的action方法中来获取URL参数值。Controller基类暴露RequestResponse对象在action方法中使用。这两个对象和HttpRequest,HttpResponse有相同的意思。有一点重要的不同就是,控制器类中的Request和Response对象是基于System.Web.IHttpRequest和System.Web.IHttpResponse接口的。这个接口是他们很容易来创建mock对象,使它很容易为控制器类创建单元测试。

    处理未定义的Action名
    Controller基类通过调用HandleUnknowAction方法来处理一个未知的action方法名。默认是实现Controller基类返回一个HTTP 404状态码。
    你可以为URL中引用到的action但实际上并不存在该action方法的情况设置默认的处理程序。下面的示例显示了重写HandleUnknowAction方法并重定向到一个"serch"页面:

    public void override HandleUnknownError(string action) {
        
    // Redirect to a search page where the unknown action is 
        
    // the search query. Determine when to show the search page 
        
    // based on the result of calling a ShouldShowSearch() method.
        if (ShouldShowSearch(action) == true
        {
            RedirectToAction(
    "search", action );
            
    return;
        }
        
    base.HandleUnknownError(action);
    }
  • 相关阅读:
    bzoj4326 NOIP2015 运输计划
    bzoj4293 [PA2015]Siano
    bzoj4238 电压
    bzoj4216 Pig
    bzoj 4237稻草人
    [题解] PowerOJ 1752 运输问题 (最大/小费用最大流)
    [题解] PowerOJ 1748 星际转移问题 (最大流 + 并查集)
    [题解] PowerOJ 1746 航空路线问题 (最大费用最大流)
    [题解] PowerOJ 1754 负载平衡问题 (最小费用最大流)
    [题解] PowerOJ 1753 分配问题 (最大/小费用最大流)
  • 原文地址:https://www.cnblogs.com/QLeelulu/p/1111477.html
Copyright © 2020-2023  润新知