第一章:
M: model 通常模型对象负责在数据库中存取数据。
V:view 通常视图是依据模型数据创建的 应用程序中处理数据显示的部分
C:controller 通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据
。
@符号:Razor服务器的代码块的开始符号 类似于jquery的“$”
第二章
MVC传值:
1.从控制器方法到视图界面有四种方式: C=>V
(1)Viewdata传值
格式为:
C(控制器中):Viewdata["key"]="viewdata" 。
V(视图中取值):Viewdata["key"]
(2)Viewbag传值
格式为:
C(控制器中):Viewbag.key="viewbag" ,V(视图中取值):viewbag.key
(3)Tempdata传值
格式为:
C(控制器中):Tempdata["key"]="tempdata" , V(视图中取值):Tempdata["key"]
(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值"] //得到界面传来的值
}
特别说明:
通过formcollection传值,取值方式:数组+下标(name值)
(5)特别:通过参数获取表单提交的值 格式为在 public actionResult methon(所需的参数类型 参数)) name 值作为参数
{
//操作参数即可
}
代码示例:
model: 数据提供
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 + "\n" + "密码:" + pwdd;
}
/// <summary>
/// 使用 (2)参数传值获取值
/// </summary>
/// <param name="userName"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public string OpenOUT2(string userName, string pwd)
{
return "用户名:" + userName + "\n" + "密码:" + pwd;
}
/// <summary>
/// (3)对象传值
/// 表单的name值必须和对应的属性名称一致
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public string OpenOUt3(User user)
{
return "用户名:" + user.UserName + "\n" + "密码:" + user.Password;
}
/// <summary>
/// 通过 (4)FormCollection 传值
/// </summary>
/// <param name="forclo"></param>
/// <returns></returns>
public string OpenOut4(FormCollection forclo)
{
return "用户名:" + forclo["userName"] + "\n" + "密码:" + forclo["Password"];
}
}
}
在浏览器中的样子:
输入结果为:
第三章:
小知识:数据库的表映射为代码中的集合。表中的一条记录映射为一个对象