ASP.NET MVC 学习二

Controller类常用内置对象学习

一、分类

1、Request     请求

2、Response  响应

3、Session     会话

4、Cookie       客户端数据

5、Application  当前网站数据

6、Server         服务器对象

二、HTTP请求的几种方式

HTTP请求时客户端与服务器端之间的通信方式 常用的分以下几种

1、GET请求:获取特定资源或数据,并将其作为响应返回给客户端。GET请求一般用于数据查询  操作,参数被追加在URL中,可以在浏览器直接输入网址进行访问。由于GET请求只是读取数据并不对数据造成修改,因此在开发中也可用于缓存和速度优化等操作。

2、POST 请求:向指定资源提交数据(例如提交表单、上传文件等),并根据服务端返回的状态码处理响应的结果。POST请求中的请求参数以请求体的形式传递,并且没有长度限制。

3、PUT 请求:更新指定资源的内容。PUT方法需要客户端提供要更新的完整资源信息,而不是仅仅修改某个字段或属性。在RESTful规范中,PUT请求常用于创建或替换资源操作。

4、DELETE 请求:删除指定资源。DELETE请求可以用来删除资源或者指定的子资源。

5、PATCH 请求:类似于PUT请求,但是只会对指定资源进行部分修改。PATCH请求适合用在只需要更新少数字段的情况下,可以减少网络传输量。

  GET请求表单直接在URL地址上

  POST请求是通过表单方式 从客户端传给服务器端的 

  相对与来说POST请求更加安全

三、Controller常用内置对象详解

1、Request     请求

        Request  (客户端)页面上的数据请求发送给(后端代码)服务器端

  •  Request.QueryString["Name"]   Get请求! 在网址后面加 ?Name=123&Age=456    
  •  Request.Form["loginname"]     Post请求!  获取表单内容 表单name=loginname
  •  Request.MapPath               相对路径转为绝对路径
  •  Request.Files["file"]         Post请求的文件 文件上传

  1)、 POST请求

HTML代码

 <form action="/Home/PostData" method="post">
        <input type="text" name="loginname" value="" />
        <button>提交</button>
 </form>

Controller方法代码

 public ActionResult PostData()
        {
            //Request.Form

            //Post请求  Post请求使用表单的方式不在链接网址上显示 相对安全一些

            return Content($"Post提交的:{Request.Form["loginname"]}");
        }

 页面显示

点击提交后将 表单内容123 通过POST方式提交到 Controller->Post方法里显示

------------------------------------------------------------------------------------------------------------------------------ 

------------------------------------------------------------------------------------------------------------------------------ 

2)、GET请求

Controller方法代码

 public ActionResult Index()
        {
            
            return Content($"Get提交的:{Request.QueryString["Name"]}-{Request.QueryString["Age"]}");
        }

 页面显示

    

------------------------------------------------------------------------------------------------------------------------------ 

3)、POST请求 文件形式

 HTML

    <form action="/Home/FileData" method="post" enctype="multipart/form-data">
        <input type="file" name="file" value="" />
        <button>提交</button>
    </form>

------------------------------------------------------------------------------------------------------------------------------ 

Controller方法代码

Request.Files["file"] file与之表单对应的name名字一致

SaveAS是将客户端提交的页面进行保存

Request.MapPath 是将相对路径转换为绝对路径

  public ActionResult FileData()
        {
            //Request.File
            //Post请求  Post请求使用表单的方式不在链接网址上显示 相对安全一些
            Request.Files["file"].SaveAs(Request.MapPath("~/Files/" + Request.Files["file"].FileName));
            return Content($"ok");
        }

------------------------------------------------------------------------------------------------------------------------------ 

页面显示

------------------------------------------------------------------------------------------------------------------------------ 

2、Response 响应

Response  服务器端(后端) 发送传输给 (客户端)页面上的数据

  • Response.Write("Hello World!");                            向客户端输出文字内容
  • Response.Redirect(url: "http://www.baidu.com");   重定向 跳转到另一个页面
  • Response.Headers                                                 获取响应头 服务器往页面发送的响应头

1)、显示数据到界面

  public ActionResult ResponseData()
        {
            //2、Response 响应
            //服务器端(后端) 发送传输给 (客户端)页面上的数据

            Response.Write("Hello World!");                   //向客户端输出文字内容
            // Response.Redirect(url: "http://www.baidu.com");   重定向 跳转到另一个页面
            // Response.Headers                                  获取响应头 服务器往页面发送的响应头
            return Content("");
        }

------------------------------------------------------------------------------------------------------------------------------  

------------------------------------------------------------------------------------------------------------------------------  

2)、通过Response向页面Header传输数据

    public ActionResult ResponseHeader()
        {

            Response.Headers["hello"] = "world";
            Response.Headers["token"] = "123";
            return Content(Response.Headers["token"]);
        }

------------------------------------------------------------------------------------------------------------------------------  

 

------------------------------------------------------------------------------------------------------------------------------  

 3、Session 会话

  • 数据保存在服务器中 存储少量重要信息 比如登录的账号 这样就能从Session中读取登录信息     
  • 用户请求网站时开始一次Session  请求20分钟内不做任何操作就结束了
  • 20分钟内当前用户打开的其他页面都可以获取 Session
  • 如果进行操作 点了个按钮或a链接 Session重新计时
  • 用户的存储数据空间 每个人都是独立的

1)、将表单内容保存到Session里

 <form action="/Home/SessionData" method="post">
        <input type="text" name="user" value="" />
        <button>提交</button>
    </form>

------------------------------------------------------------------------------------------------------------------------------   

public ActionResult SessionData()
        {

            //Session是一个键值对   Session["user"]是Key   Request.Form["user"]是Value
            //Session.Clear();   清空 销毁
            Session["user"] = Request.Form["user"];
            return Content("会话中的数据是:" + Session["user"]);
        }

------------------------------------------------------------------------------------------------------------------------------   

  

------------------------------------------------------------------------------------------------------------------------------   

------------------------------------------------------------------------------------------------------------------------------  

 

2)、查询Session

    public ActionResult GetSession()
        {
            return Content("GetSession是:" + Session["user"]);
        }

------------------------------------------------------------------------------------------------------------------------------   

Session每个用户都是独立的 其他用户查询不到 

------------------------------------------------------------------------------------------------------------------------------ 

3)、清除Session

  public ActionResult ClearSession()
        {
            Session.Clear();
            return Content("GetSession是:" + Session["user"]);
        }  

------------------------------------------------------------------------------------------------------------------------------   

4、Cookie 客户端数据

       Cookie 客户端保存的数据 下面是Cookie使用过程和设置

       Expires = DateTime.Now.AddDays(7)  类似其他页面设置7天免登录

       Expires = DateTime.Now.AddDays(-1)  清除Cookie 

 public ActionResult CookieSave()
        {
            //Cookie 客户端数据
            //Cookie有个时效性 当发送时就失效了 可以设计cookie保存时间
            //利用Response 从服务器端向客户端cookie传送一个数据
            Response.Cookies.Add(new HttpCookie("token")
            {
                Value="1121这是服务器传给客户端的数据",
                Expires = DateTime.Now.AddDays(7)  //七天免登录
                
            });
            return Content("OK");
        }
        public ActionResult CookieGet()
        {
          
            
            return Content("Cookie:"+Request.Cookies["token"].Value);
        }
        public ActionResult CookieClear()
        {
            //清除cookie 用过期的方式
            Response.Cookies.Add(new HttpCookie("token")
            {
         
                Expires = DateTime.Now.AddDays(-1)  //七天免登录

            });
            return Content("OK");
        }

------------------------------------------------------------------------------------------------------------------------------  

5、Application 当前网站对象

   Application 保存当前网站的数据 是网站通用的 所有人都可访问

  public ActionResult ApplicationData()
        {
            //Application 和Session 都是在服务器端
            //Session时独立的   Application是整个网站共享的

            HttpContext.Application["user"] = "123";
            return Content("OK");
        }
        public ActionResult GetApplicationData()
        {
            return Content("Application的数据是:" + HttpContext.Application["user"].ToString());
        }

------------------------------------------------------------------------------------------------------------------------------  

6、Server

      Server 包含一些服务器常用方法 里面有一些转换工具方法

   public ActionResult ServerDemo()
        {
            //转发 路径不变 页面发生了改变  
            //重定向 会把路径也改变
            // Server.MapPath  虚拟路径转物理路径
            //其他都是转码用的方法
            Server.Transfer("~/HtmlPage1.html"); //转发 必须是当前网站内的网页才可转发
            return Content("");
        }

------------------------------------------------------------------------------------------------------------------------------  

 1)、Server.Tranfer 转发

  • 与Response.Redirect 的重定向不同
  • 转发只能跳转当前网站的其他页面 URL路径不变
  • 重定向可以跳转任何的页面 URL会改变 

------------------------------------------------------------------------------------------------------------------------------  

 

总结

上述几个是在 Controller类里的一些常用的内置对象

Controller类是派生于ControllerBase

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值