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();//提交
};