第一章:
M: model 通常模型对象负责在数据库中存取数据。
V:view 通常视图是依据模型数据创建的 应用程序中处理数据显示的部分
C:controller 通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据
。
@符号:Razor服务器的代码块的开始符号 类似于jquery的“$”
第二章
MVC传值:
1.从控制器方法到视图界面有四种方式: C=>V
(1)Viewdata传值
格式为:
(2)Viewbag传值
格式为:
(3)Tempdata传值
格式为:
(4)Mode(???)
2.viewdata与viewbag区别:
(1)对于普通类型传值方式一样
(2)对于强类型(对象类)viewdata需要强制转换 ,而viewbag不需要转换 :
第一种方式: 某对象 s=(命名空间+某对象类)(viewdata["对象变量"])
第二种方式: 某对象 s= viewdata["对象变量"] as (命名空间+某对象类)
3. Viewdata与Tempdata的区别:
(1)viewdata 传值时不能跨方法,否则值会丢失,只能是在本方法到本视图 。
(2)tempdata 可以跨方法传值(取值)值不会丢失。
4.C<=>V
(1)强类型传值 通过对象传值(model)
C中:返回一个实例化对象(变量),
V中:需要一个接受从C中传来的,与之对应的对象变量(一般为model) (有可能是C中返回的是集合,则V中需要用集合接受:格式为 @model List<命名空间.类名>)
(2)request传值 request 获取表单的值 request值存在request对象中
格式为:
View(视图中):
<form action="访问路径" method="请求方式">
<input type="text"name="1"/>
<input type="text"name="2"/>
<input type="submit"name="提交"/>
</form>
Controller(控制器中): Request接收取值 , 值都在Request中
string first=Request["1"] name值与属性名称值一样
string second=Request["2" ] name 值
(3)对象传值 要有对象首先得必须有类的存在
格式为: public actionResult methon( 类名 变量(m))
{
m.属性名 //得到界面传来的值
}
特别强调:通过对象传值,需保证form表单中的name与类中的属性名称一样
(4)formCollection传值
格式为:
格式为: public actionResult methon( formCollection 变量(colletion))
{
colletion["name值"] //得到界面传来的值
}
特别说明:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace mvc传值.Models { public class User { public string UserName { get; set; } public string Password { get; set; } } }
视图: 数据展示
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> </head> <body> <div> <form action="/FormTIjioa/OpenOut4"method="post"> 用户名:<input type="text" name="userName"/><br /> 密码:<input type="Password"name="Password"/><br /> <input type="submit"value="提交"/> </form> </div> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using mvc传值.Models; namespace mvc传值.Controllers { public class FormTIjioaController : Controller { // GET: FormTIjioa public ActionResult Index() { return View(); } /// <summary> /// 获取表单的值 (1) request方式传值获取值 /// </summary> /// <returns></returns> public string OpenOut1() { string userNam = Request["userName"]; string pwdd = Request["pwd"]; return "用户名:" + userNam + " " + "密码:" + pwdd; } /// <summary> /// 使用 (2)参数传值获取值 /// </summary> /// <param name="userName"></param> /// <param name="pwd"></param> /// <returns></returns> public string OpenOUT2(string userName, string pwd) { return "用户名:" + userName + " " + "密码:" + pwd; } /// <summary> /// (3)对象传值 /// 表单的name值必须和对应的属性名称一致 /// </summary> /// <param name="user"></param> /// <returns></returns> public string OpenOUt3(User user) { return "用户名:" + user.UserName + " " + "密码:" + user.Password; } /// <summary> /// 通过 (4)FormCollection 传值 /// </summary> /// <param name="forclo"></param> /// <returns></returns> public string OpenOut4(FormCollection forclo) { return "用户名:" + forclo["userName"] + " " + "密码:" + forclo["Password"]; } } }
在浏览器中的样子:
输入结果为: