MVC系列学习(九)-DTO的使用】的更多相关文章

本次学习用的数据库,如下 1.什么是DTO:DataTransferObject 即数据传输对象,服务端的客户端的通信,自动定义个小的实体类,里面只包含我们需要传输的属性 2.不用DTO会有什么问题 a.在用JavaScriptSerializer时,会报错 原因:Teacher实体中有外键实体TeachClass,而TeachClass中又有一个Teacher的集合属性,然后会一直循环的查询,出现死循环 b.使用json返回数据时,会出错 3.使用DTO解决问题 现在问题: 在序列化Teach…
bootstrap-data-target触发模态弹出窗元素的data使用 时间:2017-05-27 14:22:34      阅读:4479      评论:0      收藏:0      [点我收藏+] 标签:bootstrap-data-target触发模态弹出窗元素的data使用 1.运行效果如图所示 2.实现代码如下 <!DOCTYPE html> <html> <head>     <meta charset="utf-8"&…
本文转自:http://www.cnblogs.com/duanshuiliu/p/3706701.html 模型绑定指的是MVC从浏览器发送的HTTP请求中为我们创建.NET对象,在HTTP请求和C#间起着桥梁的作用.模型绑定的一个最简单的例子是带参数的控制器action方法,比如我们注册这样的路径映射: routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: n…
DO:数据库实体类映射到model里的实体类,每个字段都和数据库相对应,一般来说开发的时候不要去添加或者修改里面的实体 DTO:与前台交互的时候(一般来说是查询操作)有一些数据字段是那一张表里面没有囊括的或者是多的,这时候需要一个实体类将所映射的字段做出添加或者减少 FROM:是在前台做提交或者修改操作的时候,将前台的请求数据当成一个表单,在model中创建一个FROM实体类接收数据 ------记录在开发中遇到的对这几个类的疑惑…
模型绑定指的是MVC从浏览器发送的HTTP请求中为我们创建.NET对象,在HTTP请求和C#间起着桥梁的作用.模型绑定的一个最简单的例子是带参数的控制器action方法,比如我们注册这样的路径映射: routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Inde…
我们平常在程序里面为了捕获异常,会加上try-catch-finally代码,但是这样会使得程序代码看起来很庞大,在MVC中我们可以使用异常过滤器来捕获程序中的异常,如下图所示: 使用了异常过滤器以后,我们就不需要在Action方法里面写Try -Catch-Finally这样的异常处理代码了,而把这份工作交给HandleError去做,这个特性同样可以应用到Controller上面,也可以应用到Action方面上面. 注意: 使用异常过滤器的时候,customErrors配置节属性mode的值…
本文转自:http://www.cnblogs.com/yinzixin/archive/2012/12/22/2824384.html 目前前端页面和服务端进行Ajax交互大多采用的都是jQuery, ASP.NET MVC提供了一些方法使得这个过程变得更加容易.常见的Ajax应用场景有两种,一个是点击一个链接,然后局部加载一些内容,可以是html片段,也可能是json数据,然后通过前端js处理之后显示:另一个是异步提交表单.这些帮助方法都是位于AjaxExtensions种的扩展方法.先看第…
1.方式一: public class VCode { /// <summary> /// 生成验证码图片 字节数组 /// </summary> /// <returns></returns> public byte[] GetVCode() { , )) { string strCode = GetRandomStr(); HttpContext.Current.Session["vcode"] = strCode; using (G…
1.先来看看,不用合并js的情况,传输量大 1.1新建一个 [基本]的mvc项目 然后新建一个控制器HomeController,因为js会在很多视图中用到,所以此时我们添加一个视图带布局页Index视图.为了更好的看到效果,我们删除掉会影响效果的东西. 2.2视图中的代码,超简洁 2.3开始测试 运行视图,然后在HttpWatch监视发送的请求 发现了,此次请求Index.cshtml视图,共发送了四次请求,同时看到了每次请求的数据大小 [视图压缩后大小:574byte] [js总大小:267…
1.通过一个实例,来了解MVC中强大的验证功能 1.1新建一个 [基本] 的mvc项目,因为要用到验证的js,然后在一个视图中写上一下代码,以及Model中的代码如下 [注]在调用html.EditFor()方法时,会根据实体中的相应属性的DataType特性,来生成相应的标签 [注]Html.ValidationMessageFor()为显示错误信息:如果要将错误集中在一处,可以用Html.ValidationSummary() 1.2.开始测试 [附:DataType的其他枚举] 1.3查看…
1.本次学习实例 1.1.建议:为了尽可能让项目简单,就新建一个空的mvc项目,同时添加任何视图不用模板页 1.2注意:在添加LoginPart的分部视图时,要记得沟一个沟 2.项目代码,如下 总共三个文件,一个控制器HomeController.cs 一个展示视图Index.cshtml 一个分部视图LoginPart.cshtml 3.程序运行后结果 4.分析结果 a.从 视图中 请求 另一视图 b.在视图中 请求 控制器 结论:在Action与Action之间传数据,可以用TempData…
1.新建一个MVC项目,选择基本 2.查看文件 看到VS为我们生成了一些东西 布局页面,Layout 指定了模板页 3.开始实例 首先控制器中的代码如下: 视图中代码如下: 1.在/Views/_ViewStart.cshtml[如果/Views下有中有该 子视图,运行时都先加载它,且它的优先级高与其他视图] 2.在/Views/Shared/_Layout.cshtml[模板页或布局页,如果视图中没设置Layout=null的话,都默认调用布局页] 3.在/Views/Home/_ViewSt…
注:本文章从伯乐那盗了两张图,和一些文字: 1.MVC设计模式 与 Asp.Net Mvc框架 a.MVC设计模式 MVC设计模式 是一种 软件设计模式,将业务逻辑 与 界面显示 分离,并通过某种方式 灵活改变代码设计方式. 它的优点是,降低了 页面呈现 和 后台业务的 耦合度. b.Asp.Net Mvc框架 它是微软 基于 MVC设计模式开发的一套 新的 Web机制. 传统的MVC设计模式,通过配置文件的方式,来决定 控制器访问哪个Model 和 执行哪个视图 . 微软采用了一种"约定大于配…
摘要: 在这篇文章中,我将继续完成SportsStore应用程序,让站点管理者可以管理产品列表.我将添加创建.修改和删除产品功能. 本篇文章将分模块的方式,逐个介绍SportsStore站点管理功能的开发过程. 数据管理部分 修改IProductRepository.cs接口代码文件. using SportsStore.Domain.Entities; using System.Collections.Generic; namespace SportsStore.Domain.Abstract…
一.特性的本质就是:对属性.方法.类加特性,本质就是new 一个特性类对象赋值给属性.方法.类. 可以通过反射的方式取得特性的值,代码如下: ①自定义特性 public class MyAttribute:Attribute { public string Name { get; set; } } ②实体类中使用自定义特性 public class AttributeTest { [MyAttribute(Name = "姓名")] public string Name { get;…
1.查找控制器的过程 1.1调用其他项目中的控制器 a.先到网站根目录下的bin文件夹下,遍历所有的程序集 b.找到以Controller结尾的类 c.再找出其中继承了Controller的类 d.接着创建同名的对象,并调用Action方法 1.2当调用同名控制器时 知道了控制器是怎么找到了,那如果bin中有两个同名的控制器怎么办,先看看问题 解决方式 a.在路由配置信息中,在遍历控制器时,只到指定命名空间下查找 b.可以看到namespaces是一个数组,即可以指定多个命名空间,可以提高遍历速…
一.加载方式 1.class加载 <div class="easyui-panel" title="面板一" style="width:500px">内容一</div> 2.js加载 <div id="pl">内容二< <script> $(function () { $("#pl").panel({ width: 500, title: "面…
本次学习的文件结构如下 1.过滤器的几种表示方式 1.1将过滤器 加到方法上,作用范围为该方法 1.2将过滤器加到当前类上,作用范围为该类的所有方法 1.3添加全局过滤器,作用范围为所有方法 2.Action过滤器 作用范围:执行在Action方法前后 2.1代码 public class MyActionFilterAttribute:ActionFilterAttribute { //在Action方法执行之前 public override void OnActionExecuting(A…
1.命名空间"System.Web"中不存在类型或命名空间名称"Optimization"(是否缺少程序集引用?) 在 区域学习(十六),遇到了个错误,如下 解决方式:找到Areas文件夹下的Web.config,并将如下语句注释掉…
1.本次学习的代码,比较简单,就是在路由配置文件中,添加一个路由信息:同时添加一个相应的控制器及视图 控制器中代码如下 即有两条路由匹配规则,一个Kim控制器,该控制器下有个Index的方法,和一个对应Index视图 2.开始配置RouteDebugger 2.1下载程序集 RouteDebugger-2.1.3.0下载地址 2.2添加引用,并配置RouteDebugger 在网站根目录下的web.config文件中,在<appSetting></appSetting>节点中,添加…
在前一讲,提到过,客户端的东西永远可以造假,所以我们还要在服务端进行验证 注意:先加载表单,后添加js文件,才能有效:而先加载js,后添加表单,是没有效果的 1.视图与Model中的代码如下 2.一张图,来记忆,服务器端验证,为我们做了什么,原理发现多了一步 2.1情况一:客户端直接就不满足条件,那么就没有机会进行服务器端验证了 2.2情况二:客户端通过了浏览器端的验证,那么就要进行服务器端验证了…
1.final关键字 (1)最终的意思, 可以修饰类,方法,变量 (2)特点: A:它修饰的类,不能被继承 B:它修饰的方法,不能被重写(覆盖) C:它修饰的变量,这个变量其实是一个常量 [扩展] ①字面量常量:"hello",10 , true ②自定义常量:final int x = 10; (3)final面试相关: A:final修饰局部变量的问题 ①基本类型:基本类型的值不能发生改变 ②引用类型:引用类型的地址值不能改变,但是,该对象的堆内存的值是可以改变的 B:初始化时间:…
本次学习,在路由配置信息中,有两个路由规则,在网站第一次启动的时候,注册了两个路由表 1.动态生成url A.在路由规则中,因为Default在前面,所以最新找到该路由表,此时不管 自己定义的控制器名 与 路由配置信息中默认的控制器名 是否相同,在浏览器中,都会全部显示.有路由表知,此时home为控制器index为Action方法 A1.同上 B1.采用动态生成url时,因为此时的 控制器名,action名 与 查到的路由表中的默认值相同,所以显示的时候,只显示 / B1.虽然控制器的名 与 默…
注:本次代码加了样式,样式如下 <style>     div {         border: 1px solid red;         margin: 10px auto;         height: 45px;         width: 450px;         text-align: center;     } </style> 1.C#语法 用 @{ } 包起来 2.定义匿名类变量,并使用 3.输出字符串 直接使用 @变量  输出变量内容 4.输出htm…
1.控制器向视图传递数据 a.使用ViewData b.使用ViewBag c.使用Model 方式二: d.使用TempData 2.为什么在控制器中设置了一些属性,在视图中可以接受 3.Action接收Url中的数据 Action接收客户端请求的参数 a.根据配置信息来接收参数(路由配置信息) 注:如果View中 不写任何视图文件,则默认加载与 该控制器同名的视图 b.根据模型绑定(Model) 注:Redirect("/Home/Index")是跳转得到指定 的 Home控制器下…
1.什么叫延迟加载 字面上可以理解为,一个动作本该立即执行的动作,没有立即执行 2.从代码上理解 static void Main(string[] args) { //执行该语句的时候,查看sql监视器,发现并没有生成sql语句 IEnumerable<Student> stu = dbContext.Students.Where(s => s.Id == ).Select(s => s); //只有当 使用的时候 ,才生成sql语句 Student student = stu.…
1.新建 一个控制台项目 2.添加一个数据项 a.选择数据库 注:数据库中的表如下: b.选择EF版本 c.选择表 3.初步了解EF框架 看到了多了一个以 edmx后缀的文件 在edmx文件上,右击打开方式,选择 XML(文本)编辑器 打开 该xml主要包含三部分:(数据库存储模型,实体模型,关系映射) edmx还为我们生成了两个tt模板 数据库存储模型: 该模型有个实体容器EntityContainer, 它的Name属性为SchoolModelStoreContainer, EntityTy…
本篇内容: 1.自动属性 2.隐式类型 3.对象初始化器和集合初始化器 4.匿名类型 5.扩展方法 6.Lambda表达式 1.自动属性 使用: class Student { public string Name { get; set; } public int Age { get; set; } } 编译后,查看IL语言 CLR 为我们生成了,私有字段(.field)和对应的共有属性语法(get_Name(),set_Name(string)) 本质:微软为我们提供了"语法糖",帮…
本文将介绍DDD分层架构中广泛使用的数据传输对象Dto,并且与领域实体Entity,查询实体QueryObject,视图实体ViewModel等几种实体进行比较. 领域实体为何不能一统江湖? 当你阅读我或其它博主提供的示例代码时,会发现几种类型的实体,这几种实体初步看上去区别不大,只是名称不同,特别在这些示例非常简单的情况下更是如此.你可能会疑惑为何要搞得这么复杂,采用一种实体不是更好? 在最理想的情况下,我们只想采用领域实体Entity进行所有的操作. 领域实体是领域层的核心,是业务逻辑的主要…
目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 欢迎来到第六天的 MVC 系列学习中.希望你在阅读此篇文章的时候,已经学习了前五天的内容,这也是第六天学习的前提条件. 1. Lab 27 - 添加批量上传选项 在这个实验中,我们将会创建一个选项,用于从 CSV 文件中上传多个 Employees. 我们将会做两件事. 学会如何运用文件上传控件. 异步控制器. 第一步:创建 FileUploadViewModel 在 ViewModels 文件…