MVC基础总结

本文介绍了MVC设计模式的基础知识,详细解释了模型、视图、控制器三者如何分工合作,并提供了创建项目框架的具体步骤和代码示例。同时,还探讨了会话管理和数据交互的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVC 基础总结
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC
应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
View(视图) Model(模型) Controller(控制器)

创建项目框架
新建 web—ASP.net web应用程序
Areas :区域 Content:插件 Models:数据库
Controllers:控制器 Common:封装类
数据—实体数据模型
视图页面
#region
public ActionResult Main()
{//右键添加视图
return View();
}
#endregion
相关代码
去空格 .Trim();
页面跳转:window.location.href = “/Main/Main”;
键盘事件 “onreturn()”
回车事件 if (window.event.keyCode == 13) {}
刷新页面 location.reload();
html追加内容 $("#Academe").append();
下拉框改变事件 .change(function () {}

bsgrid表格设置

声明表格 var tabStudent;
$(function () { //表格ID tabStudent
tabStudent = $.fn.bsgrid.init(‘tabStudent’, {//初始化
url: 'Main ',
autoLoad: false,//自动加载
stripeRows: true,//隔行变色
rowHoverColor: true,//划过行变色
displayBlankRows: false,//是否显示空白行, 默认值true
pageSize: 17,//分页大小,
});
//jQuery.bsgrid里面的第三种方法 提交参数 search数据筛选
tabStudent.search({ studentNumber: studentNumber, academeId: academeId });//键值对

int count = linqItem.Count(); //总条数
List listStudent = linqItem
.Skip(bsgridPage.GetStartIndex())//开始数据的索引
.Take(bsgridPage.pageSize).ToList();//页面大小 显示行
//转化为表//调用分页封装类(扩展表),
Bsgrid bsgrid = new Bsgrid
{
success = true,//成功与否
totalRows = count,//总行数
curPage = bsgridPage.curPage,//当前页
data = listStudent//具体数据
};
return Json(bsgrid, JsonRequestBehavior.AllowGet);//返回数据bsgrid

会话机制
Session(项目的任何位置都可以调用)适合小量数据 服务端
//存Session[“user”] = “majcms”;
//取String username = Session[“user”].ToString();
cookie 用于保存客户浏览器请求服务器页面的请求信息 客户端
//存Response.Cookies[“name”].Value = “majcms”;
//取String username = Response.Cookies[“name”].Value;
//ViewBag获取动态视图数据字典 将数据传输到view 用@…引用
ViewBag.UserNuber = UserNuber;
value="@ViewBag.UserNuber"

控制器获取页面数据
查询数据
public ActionResult CheckLogin()
{//“KD"需与页面层的name值对应
string KD = Request.Form[“KD”];
};
<input id=“UserNuber” name=“KD” value=”@ViewBag.UserNuber" type=“text” class=“form-control” /
*Lambda 运算符 =>, 通过学院id在学院表查询学院
var listAcademe = myModels.SYS_Academe.Where(m => m.AcademeID == ID).ToList();
//多表条件查询
var ListGrade = (from dbStudent in myModels.PW_Student
//join连接二个表 on equals 通过什么连接
join dbAcademe in myModels.SYS_Academe
on dbStudent.AcademeID equals dbAcademe.AcademeID// 学院表
join dbUser in myModels.PW_User
on dbStudent.UserID equals d bUser.UserID//用户表
orderby dbStudent.studentID descending//倒序排序
where tdGrade.AcademeID == ID//条件查询
select new StudenVo{//vo用于逻辑层和表示层之间数据处理封装
Id = tdGrade.GradeID,//年级ID
Name = tdGrade.GradeName.Trim()//年级
}).ToList();

新增数据
public ActionResult InsertAcademe(string AcademeName,string AcademeCode){
//实例化表对象
Models.SYS_Academe myAcademe = new Models.SYS_Academe();
//给表对象属性赋值 新增数据 赋值页面输入的数据
myAcademe.AcademeName = AcademeName.Trim();
myAcademe.AcademeCode = AcademeCode.Trim();
//把表的对象加载到实体对象模型中
myModels.SYS_Academe.Add(myAcademe);//给学院表添加行 myAcademe实例化的表
myModels.SaveChanges();//保存 插入数据库
}
修改数据
myModels.Entry(myAcademe).State = EntityState.Modified;//将实体变为修改状态
myModels.SaveChanges();//保存 插入数据库
删除数据
// Remove移除 查到的数据
myModels.SYS_Academe.Remove(listAcademe[0]);
var dd = myModels.SaveChanges();//保存 插入数据库
if (dd == 1)//只有一行受影响
{strMsg = “success”;}//删除成功

页面传递据
$("#btnSubmit").click(function () {
var formDate = $("#from").serializeArray();
//不确定参数时serializeArray() 方法通过序列化表单值来创建对象数组
$.post("/Main/CheckLogin", formDate, function (data) {
// 请求路径 传递数据 回调函数(返回数据)
}}
//问号?拼接参数 &连接参数
$.getJSON("/SystemManagement/CollegeInfor/InsertAcademe?AcademeName="
+ Name + “&AcademeCode=” + Code, function (date) {//回调函数 strmsg
});
$.ajax({//异步提交
url: “/SystemManagement/CollegeInfor/DelectAcademe?ID=” + check[i].value,
, //列表接口地址 控制器方法 时间去除缓存
type: “get”,//数据传输 通道的类型
async: false,//是否异步
dataType: “json”,//数据类型
success: function (data) {//回调函数 }
});
LINQ to SQL
单表查询
var dbAcademe = (from tbAcademe in myModels.SYS_Academe
// 命名 查询表 实体表
orderby tbAcademe.AcademeID descending
// orderby按学院ID进行descending(倒叙)排序
select new { // 无条件无where 进行查询
ID=tbAcademe.AcademeID,//学院ID
}).ToList();//转换为列表

.Single(返回唯一的数据)
.ToList(返回一个列表)

返回类型为文件
return File(btValideCode, @“image/jpeg”);
文件形式File返回(具体文件,文件类型)
返回类型为数据
return Json(strmsg, JsonRequestBehavior.AllowGet);//允许方法get提交

AJAX AJAX = 异步 JavaScript 和 XML。
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
JSON是存储和交换文本信息的语法:
1.数据在名称/值对中(分号隔开) name:key
2.数据由逗号分隔 name:key,name1:key2
3.花括号保存对象({}){name:key,name1:key2}
4.方括号保存数组([]) [{name:key,name1:key2},{name:key,name1:key2}]

HTML
表单标签
输入标签
文本域
单选按钮
Male
Female
复选框
I have a bike
I have a car
下拉框

Volvo Saab

表单 传出数据
action 链接 规定当提交表单时向何处发送表单数据
可以是其他站点src=www.baidu.com 也可以是站点内文件 src="/jQueryAjax/formAction"
method get/post 规定用于发送 form-data 的 HTTP 方法。(提交表单的方式)
默认Get 获取数据 不安全并且传输数据小 get提交时参数直接暴露在URL上。
post 传递修改数据 安全可传输大量数据
1.

//submit 提交表单

2.

//submit 提交表单

3. 通过js设置属性


$(“button”).click(function () {//第一种获取表单的方式
$(“from”).attr({ “method”: “post”,
“action”: “/jQueryAjax/formAction” }); });

逻辑代码 接受视图层数据

  1. public ActionResult formAction(FormCollection form) 只能接收post
    { string name = form[“txtName”]; //name的值
    string sex = form[“cboSex”];
    string address = form[“txtAddress”];
    return Content(name+"&"+sex+"&"+address);
    //Content(string)返回字符串 输入到页面
    FormCollection用来在controller中获取页面表单元素的数据。
    它是表单元素的集合,包括元素。}
  2. public ActionResult formAction1()
    { string name = Request.Form[“txtName”];
    string sex = Request.Form[“cboSex”];
    string address = Request.Form[“txtAddress”];
    return Content(name + “&&” + sex + “&&” + address);//Content(string)返回字符串 }
  3. public ActionResult formAction1 (string txtName,string cboSex,string txtAddress)
    { string name = txtName;
    string sex = cboSex;
    string address = txtAddress;
    return Content(name + “&&&” + sex + “&&&” + address);
    //Content(string)返回字符串 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值