1、cookie

继续讲解MVC的内置对象cookie

相对不安全

1)保存cookie

      public ActionResult Index()
{
// 设置cookie以及过期时间
Response.Cookies.Add(new HttpCookie(name: "userId")
{
Value = "128idn62dx",
Expires = DateTime.Now.AddDays()
});
return Content("ok!");
}

2) 获取cookie

        public ActionResult Index()
{ return Content(Request.Cookies["userId"].Value);
}

3)移除cookie

      public ActionResult Index()
{
// 设置cookie以及过期时间
Response.Cookies.Add(new HttpCookie(name: "userId")
{
Expires = DateTime.Now.AddDays(-)
});
return Content("ok!");
}

2、Application

1) 是全局的

设置application

         public ActionResult Index()
{
HttpContext.Application["user"] = "Linda";
return Content(HttpContext.Application["user"].ToString());
}

3、Server

包含了服务器的常用方法

      public ActionResult Index()
{
Server.Transfer(path: "html页地址");
return Content("ok");
}

路径不变,内容改变

.MapPath  虚拟路径转物理路径

2、控制器(controller)与视图(view)的数据通信

Controller里面每个方法都可供访问

1) Controller => view

①ViewBag

控制器文件

        public ActionResult Index()
{
ViewBag.Info = "info from Controller";
return View();
}

视图文件

 @{
ViewBag.Title = "Index";
} <h2>App Page for DemoController</h2>
<!--访问Controller内数据--> <p>@ViewBag.Info</p>

②ViewData

        public ActionResult Index()
{
ViewData["Name"] = "fiona";
return View();
}
@{
ViewBag.Title = "Index";
} <h2>App Page for DemoController</h2>
<!--访问Controller内数据--> <p>@ViewData["Name"]</p>

③TempData

可跨页面传递数据,仅能被访问一次,之后会被清除

        public ActionResult Index()
{
TempData["token"] = "23vf5c";
return View();
}
@{
ViewBag.Title = "Index";
} <h2>App Page for DemoController</h2>
<!--访问Controller内数据--> <p>@TempData["token"]</p>

上面3中方法传递的都是不主要的数据

主要的数据通过下面的方法传递

④通过View方法传递

 @{
ViewBag.Title = "Index";
} <h2>App Page for DemoController</h2>
<!--访问Controller内数据--> <p>@Model.Name</p>
<p>@Model.Sex</p>
         public ActionResult Index()
{
return View(new Animal()
{
Name = "cat",
Sex = "male"
});
}

ide不能进行识别来提示,可声明

@{
ViewBag.Title = "Index";
}
@model MVCStudy.Models.Animal <h2>App Page for DemoController</h2>
<!--访问Controller内数据--> <p>@Model.Name</p>
<p>@Model.Sex</p>

Model内的类型要与View方法参数内的一致

其它方式:指定视图页并传参

        public ActionResult Index()
{
return View("ShowData",new Animal()
{
Name = "cat",
Sex = "male"
});
}
@{
Page.Title = "此处显示标题";
//Layout = "此处显示你的布局页";
}
@model MVCStudy.Models.Animal <div>
this iss ShowData page
</div> <div> data from democontroller</div> <p>@Model.Name</p>
<p>@Model.Sex</p>

同时指定布局模板,下面的mylayout位于shared目录下

    public ActionResult Index()
{
       // 视图名,模板页,数据
return View("ShowData",masterName:"_MyLayout",new Animal()
{
Name = "cat",
Sex = "male"
});
}

------------恢复内容结束------------

正式学习MVC 02的更多相关文章

  1. 正式学习MVC 01

    1.新建项目 点击创建新项目,选择ASP.NET web应用程序,对项目进行命名后点击创建. 截图如下: 取消勾选HTTPS配置 可选择空 + mvc 或直接选定MVC 2.目录结构分析 1) App ...

  2. 正式学习MVC 05

    1.剃须刀模板razor的使用 1)混编 循环语法 @model List<MVCStudy.Models.Student> @{ ViewBag.Title = "List&q ...

  3. 正式学习MVC 06

    1.Model常用属性讲解 using System; using System.ComponentModel.DataAnnotations; namespace MVCStudy2.Models ...

  4. 正式学习MVC 04

    1.ActionResult ActionResult是一个父类, 子类包括了我们熟知的 ViewResult 返回相应的视图 ContentResult  返回字符串 RedirectResult( ...

  5. 正式学习MVC 03

    1.View -> Controller的数据通信 1) 通过url查询字符串 public ActionResult Index(string user) { return Content(u ...

  6. 白话学习MVC(十)View的呈现二

    本节将接着<白话学习MVC(九)View的呈现一>来继续对ViewResult的详细执行过程进行分析! 9.ViewResult ViewResult将视图页的内容响应给客户端! 由于Vi ...

  7. 学习MVC之租房网站(二)-框架搭建及准备工作

    在上一篇<学习MVC之租房网站(一)-项目概况>中,确定了UI+Service的“双层”架构,并据此建立了项目 接下来要编写Common类库.配置AdminWeb和FrontWeb 一.编 ...

  8. [eShopOnContainers 学习系列] - 02 - vs 2017 开发环境配置

    [eShopOnContainers 学习系列] - 02 - vs 2017 开发环境配置 https://github.com/dotnet-architecture/eShopOnContain ...

  9. 软件测试之loadrunner学习笔记-02集合点

    loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...

随机推荐

  1. 监控 Linux 服务器活动的几个命令(watch top ac)

    watch.top 和 ac 命令为我们监视 Linux 服务器上的活动提供了一些十分高效的途径. 为了在获取系统活动时更加轻松,Linux 系统提供了一系列相关的命令.在这篇文章中,我们就一起来看看 ...

  2. 吴裕雄--天生自然C语言开发:函数指针

    #include <stdio.h> int max(int x, int y) { return x > y ? x : y; } int main(void) { /* p 是函 ...

  3. demo4j解析xml

    1//先加入dom4j.jar包 2import java.util.HashMap; 3import java.util.Iterator; 4import java.util.Map; 5 6im ...

  4. 郑宇以城市计算研究膺选 MIT 科技创新35俊杰 (TR35)

    MIT 科技创新35俊杰 (TR35)"> 编者按:<MIT Technology Review>于8月22日发布了令人瞩目的2013年全球杰出青年创新者(MIT TR35 ...

  5. jsp页面之间传中文参数显示乱码问题的解决

    最近在项目中遇到jsp页面通过url传递参数,出现乱码,但是在本地是正常显示,在服务器上却是乱码,找了好久都没找到解决方法,最终在大神的帮助下解决了这个问题 比如从a.jsp像b.jsp页面传递参数 ...

  6. 基于TCP的大文件发送、UDP、socketserver

    基于TCP的大文件发送 #server服务端 import struct import json import os import socket server = socket.socket() # ...

  7. 73)PHP,session基本操作

    (1)先开启: Session_start(); 也可以通过php.ini配置文件中,自动开启sesssion机制:    Session.auto_start; (2)利用$_SESSION来操作数 ...

  8. 安装与使用django-restframework

    django-restframework 一.安装与使用 1.安装 >: pip3 install djangorestframework 2.使用 在settings.py中注册: INSTA ...

  9. 关于虚拟机VMware Tools安装中出现的无法自动安装VMCI驱动程序的问题

    问题 解决方法 根据配置文件信息找到所在的虚拟机位置 找到后缀名为vmx的文件,右键打开方式中选择使用记事本打开 选择左上角编辑中的查找功能输入图中的查找内容后,点击查找下一个 将其原先的TRUE值改 ...

  10. Promise的用法(js&java)

    Promise(onsuccess , on fail) f1.then(f2.then(), f3.then()) java CompletableFuture.thenAccept