1、数据传递
(1)session和TempData
全局变量,可以将值从一个动作传递到另一个动作,也可以从控制层传递到视图层。
TempData取一遍值后自动销毁。
session使用:
//控制器中赋值 Session["aaa"] = "这是一句话"; //视图层取值 @Session["aaa"]
TempData使用:
//控制器中赋值 TempData["aaa"] = "这又是一句话"; //视图层取值 @TempData["aaa"]
(2)ViewData和ViewBag
可以将值从控制层传递到视图层,ViewData出现较早,现在一般使用ViewBag。
ViewData使用:
//控制器中赋值 ViewData["aaa"] = u; //视图层取值 Users u=ViewData["aaa"];
ViewBag使用:
//控制器中赋值 ViewBag.aaa = u; //视图层取值 Users u=ViewBag.aaa as Users ;
(3)强类型
将值从控制层传递到视图层,优点是:数据稳定,速度快。
//控制器赋值 return View(u); //视图层取值 @model Users //声明,model中m小写,后面是数据类型 @Model.UserName//取值,Model中M大写
2、多表单
一个表单中有好几个提交到不同的动作时使用JS
//form表单 <form method="post"> <input type="button" id="btn1" value="数据提交1" /> <input type="button" id="btn2" value="数据提交2" /> </form> //JS document.getElementById("btn1").onclick = function () { this.form.setAttribute("action", "@Url.Action("Actionname","控制器名字")"); this.form.submit();//提交 };