一、ViewData[]
//赋值 ViewData["u"]="值"; //取值 数据类型 u= ViewData["u"] as 数据类型 //数据类型强转
二、ViewBag
Users u = new Users(); //赋值 ViewBag.hehe = u;//hehe是自己随意起的名称 //取值 Users u = ViewBag.hehe as Users;//强转数据类型
三、TempData[]
像Session一样使用,效果和Session一样,是全局变量
区别是:只要取一遍值,就会自动销毁
四、
控制器中的View()方法可以给视图层传值,比如Users类
注意:在视图层中
(1)在页面头部先声明model的类型@model Users
(2)在页面中使用时直接"Mode”.属性“来取值
在控制器中传值
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcApplication6.Models; namespace MvcApplication6.Controllers { public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); } public ActionResult update(string id) { Users u=new UsersData().dan(id); //if(u!=null) //{ // ViewData["u"] = u; //} return View(u);//强类型传值 } public ActionResult update1(Users u) { new UsersData().update(u); return RedirectToAction("Index","Home"); } } }
在视图层中使用(注意上面的(1)(2))
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@{ Layout = null; } @using MvcApplication6.Models; @model Users @*注意model中的”m“是小写,提示是大写,此处必须是小写*@ <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>update</title> </head> <body> <div> @{using(Html.BeginForm("update1","Home",FormMethod.Post)) { Users u=ViewData["u"] as Users; @:姓名<input type="text" name="username" value="@Model.UserName" /><br /><br /> @:密码<input type="text" name="password" value="@Model.Password" /><br /><br /> @:昵称<input type="text" name="nickname" value="@Model.NickName" /><br /><br /> @:性别<input type="text" name="sex" value="@Model.Sex" /><br /><br /> @:生日<input type="text" name="birthday" value="@Model.Birthday" /><br /><br /> @:民族<input type="text" name="nation" value="@Model.Nation1.NationName" /><br /><br /> <input type="submit" value="确定修改" /> } } </div> </body> </html>
完!!