zoukankan      html  css  js  c++  java
  • itcastMVC 02

     1、MVC 分页

    借助ViewData来在页面上进行数据库数据的展示:

    对数据库数据执行删除操作

     2、

    dynamic 和 var 的区别

    dynamic 运行时确定类型

    var 编译时确认类型

    3、

    强类型视图,自动添加CRUD(创建读写的MVC5模板)

    4、路由规则的匹配

    当存在多个路由时,会从上到下依次匹配。如果匹配不上就报错

    <p>@{Html.ActionLink(Name,Action,Controller,routeValues,htmlAttrs)}</p>

    如果httpAttr有c#关键字,用@在前面转义

    5、讲解MVC中的HtmlHelper

    1)Html.TextBox/DropDownList/RadioButton
    2) 表单

    @{
        ViewBag.Title = "Index";
    }
    
    <h2>Index of Demo</h2>
    
    <div>
        @{ 
            using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post,
                new { id = "form1", enctype=""}))
            {
          // 表单标签
            }
        }
    
    </div>

    3)表单校验

    6、部分类

    https://www.cnblogs.com/mdnx/archive/2012/10/29/2745564.html

    部分类可用于解决使用ef entityfirst后修改模型导致模型重新生成属性丢失的问题。

    这是ef生成的实体类

    这是个新建的部分类,部分类实+实际上是同一个类

    7、MVC使用AJAX

    借助jquery进行AJAX操作

    JavaScriptSerializer 类

    定义

    应对 Json.NET 使用序列化和反序列化。 为启用 AJAX 的应用程序提供序列化和反序列化功能。

    8、mvc中特有的使用ajax方式

    Ajax.BeginForm

    9、路由规则

    需要引入System.Web.Routing

    为路由添加参数

    一个路由实例分析,越详细的路由越定义在前面

    {*values}表示匹配任意字符串与格式

    10、区域

    网站后台放在区域内

    用户访问的放在外边

    11、Filter过滤器

    1)方法过滤器

    用户在地址栏输入地址并请求,在服务器响应相应的

    方法之前,执行一些操作。

    常用于进行登录验证,权限控制等场景(例如Session登录校验)

    使用方法:

    在Model目录下添加类,名称必须以Attribute结尾

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace EFDemo01.Models
    {
        public class DemoFilterAttribute:ActionFilterAttribute
        {
            // 过滤器方法在Action执行前执行
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                filterContext.HttpContext.Response.Write(@"<div>该方法在Action执行前执行</div>");
                base.OnActionExecuting(filterContext);
            }
    
            // 过滤器方法在Action执行后执行
            public override void OnActionExecuted(ActionExecutedContext filterContext)
            {
                filterContext.HttpContext.Response.Write(@"<div>该方法在Action执行后执行</div>");
                base.OnActionExecuted(filterContext);
            }
    
            // 过滤器方法在结果渲染前执行
            public override void OnResultExecuting(ResultExecutingContext filterContext)
            {
                filterContext.HttpContext.Response.Write(@"<div>该方法在Result执行前执行</div>");
                base.OnResultExecuting(filterContext);
            }
    
            // 过滤器方法在结果渲染后执行
            public override void OnResultExecuted(ResultExecutedContext filterContext)
            {
                filterContext.HttpContext.Response.Write(@"<div>该方法在Result执行后执行</div>");
                base.OnResultExecuted(filterContext);
            }
        }
    }

    使用时,当做属性来使用

    using EFDemo01.Models;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace EFDemo01.Controllers
    {
        public class DemoController : Controller
        {
            // GET: Demo
            [DemoFilter]
            public ActionResult Index()
            {
                return Content("渲染结果");
            }
        }
    }

    结果:

    如果将该特性标签添加到控制器前,将对该控制器下所有的方法生效

     重定向的写法:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Routing;
    
    namespace EFDemo01.Models
    {
        public class DemoFilterAttribute:ActionFilterAttribute
        {
            // 过滤器方法在Action执行前执行
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                filterContext.Result = new RedirectToRouteResult(
                    new RouteValueDictionary
                    {
                        { "controller", "Home" },
                        { "action", "Index" }         //需要跳转到的 controller 对应的 action   
                    });
                base.OnActionExecuting(filterContext);
            }
    
        }
    }

    12、Razor补充

    1)Razor模板在@{}可以写c#代码,也可以写html代码段

    2)编译输出Html代码:@MVCHtmlString.Create()

    3)设置强类型视图:

    ViewData.Model 就是UserInfo类型

    4)注释:

    @**@

    5)主体页填充模板页section:

  • 相关阅读:
    k8s管理
    Docker
    容器技术学习系列(一)-Docker基础知识学习
    Linux系统下DHCP服务安装部署和使用详解
    Linux下配置yum源为阿里云或网易的详解
    一道算法题目(1)
    SS命令和Netstat命令比较
    centos配置redis的主从复制(2)
    centos配置redis的主从复制(1)
    散列表(22)
  • 原文地址:https://www.cnblogs.com/Tanqurey/p/12459638.html
Copyright © 2011-2022 走看看