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