MVC 强类型ViewData[] TempData[]

时间:2023-03-09 17:29:21
MVC 强类型ViewData[]  TempData[]

一、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”.属性“来取值

在控制器中传值

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))

@{
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>

完!!