MVC笔记

MVC

MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC

应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。

View(视图)      Model(模型)     Controller(控制器)

创建项目框架

新建 web—ASP.net web应用程序

Areas :区域     Content:插件     Models:数据库

Controllers:控制器      Common:封装类

数据---实体数据模型

视图页面

#region

public ActionResult login()

{//右键添加视图

return View();

}

#endregion

相关代码

去空格 .Trim();

页面跳转window.location.href = "/Main/Main";

键盘事件  onkeydown="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: '/ExaminationManagement/SetExaminee/SelectStudentAll',

          autoLoad: false,//自动加载

          stripeRows: true,//隔行变色

          rowHoverColor: true,//划过行变色

          displayBlankRows: false,//是否显示空白行, 默认值true

          pageSize: 17,//分页大小,

          pageSizeSelect: true,// 是否显示分页大小选择下拉框,                pagingLittleToolbar: true,//是否显示精简的图标按钮分页工具条,

            });

//jQuery.bsgrid里面的第三种方法   提交参数 search数据筛选

tabStudent.search({ studentNumber: studentNumber, academeId: academeId });

 

int count = linqItem.Count(); //总条数       

            List<StudenVo> listStudent = linqItem

                .Skip(bsgridPage.GetStartIndex())//开始数据的索引

                .Take(bsgridPage.pageSize).ToList();//页面大小  显示行

                //转化为表//调用分页封装类(扩展表),

            Bsgrid<StudenVo> bsgrid = new Bsgrid<StudenVo>

            {

                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()

{//"zhanhao"需与页面层的name值对应

string zhanhao = Request.Form["zhanhao"];

}

<input id="UserNuber" name="zhanhao" 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

表单标签 <from></from>

输入标签 <input type="text" name="lastname" />
文本域   <textarea name="dizhi" id="dizhi"></textarea>
单选按钮  
<input type="radio" name="sex" value="male" /> Male

<input type="radio" name="sex" value="female" /> Female

复选框

<input type="checkbox" name="bike" />I have a bike

<input type="checkbox" name="car" />I have a car

下拉框

<select name="cars">

<option value="volvo">Volvo</option>

<option value="saab">Saab</option>

</select>

 

表单 <from></from>传出数据

action    链接      规定当提交表单时向何处发送表单数据

可以是其他站点src=www.baidu.com   也可以是站点内文件 src="/jQueryAjax/formAction"

method  get/post    规定用于发送 form-data 的 HTTP 方法。(提交表单的方式)

默认Get 获取数据  不安全并且传输数据小   get提交时参数直接暴露在URL上。  

post 传递修改数据 安全可传输大量数据

1.<from action= "/jQueryAjax/formAction "  method="get" >

<input   type="text" value="" name="txtName" id="txtName" />

  <button   type=”submit”></button>    //submit 提交表单

</from>

 

2.<from action= "/jQueryAjax/formAction "  method="post" >

<input   type="text" value="" name="txtName" id="txtName" />

  <button   type=”submit”></button>    //submit 提交表单

</from>

 

3.<from>    通过js设置属性

<input   type="text" value="" name="txtName" id="txtName" />

  <button></button>   

</from>

 

   $("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中获取页面表单元素的数据。

它是表单元素的集合,包括<input type="submit" />元素。}

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)返回字符串  }

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值