- 浏览: 1026868 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (445)
- Java (22)
- J2EE (18)
- Flex (102)
- Flex-blazeds (1)
- Flex-FABridge (2)
- Flex4 (3)
- CheckStyle (2)
- PowerDesigner (0)
- POI (2)
- Java2Word (2)
- 杂项 (15)
- 日记 (3)
- 数据库-oracle (41)
- 数据库-SQLServer (7)
- 中间件 (1)
- 英语 (8)
- C# (43)
- ASP.net (72)
- ASP.net MVC (28)
- 微软-Entity Framework (19)
- JavaScript (22)
- JQuery (31)
- EasyUI (3)
- VS2010 (4)
- CVS (1)
- Tomcat (3)
- Linux (1)
- 遗留问题 (1)
- iphone (1)
- MAC (0)
- 系统 (2)
- Web Service (4)
- Cache Manager (1)
- PMP (1)
- WCF (10)
- BootstrapJs (1)
- Web API (6)
- Go语言 (0)
- 网络协议 (2)
- Redis (10)
- RabbitMQ (10)
- Git (3)
- Kafka (5)
- ELK (5)
- Nginx (3)
- 测试 (2)
最新评论
-
ygm0720:
Table行拖拽自己实现 -
程乐平:
Flex4开发视频教程(27集)下载http://bbs.it ...
Flex4教程 -
liuweihug:
Jquery+asp.net 后台数据传到前台js进行解析的办 ...
AJAX $.toJSON的用法或把数组转换成json类型 -
weilikk:
谢谢谢谢!!
javascript IE下不能用 trim函数解决方法 -
gxz1989611:
vigiles 写道请问楼主:[Fault] exceptio ...
blazeds推送技术至Flex
上篇简单的了解了ASP.NET MVC的基本概念和基本流程,接下来的几篇将通过简单的实例,来看看如何通过ASP.NET MVC创建应用程序。Demo很简单也很基础,高手绕过。
闲话少说,直接进入正题。首先我们要做的就是安装ASP.NET 1.0。大家可以到CodePlex上下载。
然后我们用VS2008创建新的ASP.NET MVC项目
:
点击确定后,会提示是否创建一个测试项目,点击ok即可。
在解决方案中,我们就可以看到ASP.NET MVC给我们创建的好的模板:
默认情况下:
Controls – 放置 Controller 类,处理 URL 请求。
Models – 放置业务实体类,表示和操作数据。
Views – 放置 UI 模板文件,负责展示输出结果。
Scripts – 放置 Javascript 类库文件和.js 文件。
Contents – 放置 CSS 和图像文件,以及其他非动态的、非 Javascript 文件。
App_Data – 放置数据库文件。
ASP.NET MVC
应用程序不是必须要求这样的目录结构。事实上,大型系统的开发人员通常会将应用程序分为多个项目文件,这样是项目更易于管理(如,数据 Model
类通常在一个单独的类库项目中)。默认的项目结构提供了常规的目录结构,用来保存应用程序更加清晰。
直接运行现有的项目:
当我们点击log on:
http://localhost/:端口号/{控制器名}/{Action方法名}
有个叫Account的Controller,有个叫LogOn的Action。这样就请求了登陆页面:
创建数据库
这里简单的创建一个User表,用来存储用户的信息。向表中添加一些数据。
创建 Model 模型
在 Model-View-Controller
框架中,Model表示应用程序的数据对象,以及相应的业务领域逻辑,包括数据验证和业务规则。Model是 MVC
应用程序的核心部分,下面我们会看到 Model的作用。ASP.NET MVC 框架支持使用任意数据访问技术,开发人员可以选择大量的.NET
数据访问技术实现 Model。这里我们选择LINQ to SQL的方式来实现对数据的访问。
增加LINQ to SQL 类
到项目程序中:在Model文件夹上右键--添加新项:
将User表手动拽到管理器中:
接下来我们就可以利用Linq来对数据库进行操作。我们创建一个UserRepository.cs,封装对User的增加,删除,修改的操作。
namespace UserInfo.Models
{
public class UserRepository
{
private UserDataContext db = new UserDataContext();
// 查询
public IQueryable < Users > FindUsers()
{
return db.Users;
}
public Users GetUsers( int id)
{
return db.Users.SingleOrDefault(d => d.UserID == id);
}
// 插入,删除
public void AddUser(Users user)
{
db.Users.InsertOnSubmit(user);
}
public void DelUser(Users user)
{
db.Users.DeleteOnSubmit(user);
}
// 更新
public void SaveUser()
{
db.SubmitChanges();
}
}
}
Model 类集成验证和业务规则逻辑
项目中我们常常会有业务的验证和业务的逻辑规则,比如不允许用户输入的信息为空之类的,我们在Model文件夹中添加Users.cs。来对User进行验证:
namespace UserInfo.Models
{
public partial class Users
{
public bool IsValid
{
get { return (GetRuleViolations().Count() == 0 ); }
}
public IEnumerable < RuleViolation > GetRuleViolations()
{
if (String.IsNullOrEmpty(UserName))
yield return new RuleViolation( " 名称不能为空 " , " UserName " );
if (String.IsNullOrEmpty(Sex))
yield return new RuleViolation( " 性别不能为空 " , " Sex " );
if (String.IsNullOrEmpty(Tel))
yield return new RuleViolation( " 电话不能为空 " , " Tel " );
if (String.IsNullOrEmpty(BirthPlace))
yield return new RuleViolation( " 出生地不能为空 " , " BirthPlace " );
if (String.IsNullOrEmpty(Company))
yield return new RuleViolation( " 工作单位不能为空 " , " Company " );
if (String.IsNullOrEmpty(Contact))
yield return new RuleViolation( " 联系方式不能为空 " , " Contact " );
yield break ;
}
partial void OnValidate(ChangeAction action)
{
if ( ! IsValid)
{
throw new ApplicationException( " 处罚规则 " );
}
}
}
public class RuleViolation
{
public string ErrorMessage { get ; private set ; }
public string PropertyName { get ; private set ; }
public RuleViolation( string errorMessage, string propertyName)
{
ErrorMessage = errorMessage;
PropertyName = propertyName;
}
}
}
这里有几点值得注意:
我们直接对 Users模型类公开 IsValid 属性和GetRuleViolations() 方法,IsValid 属性根据验证和业务规则返回 true 或 false,GetRuleViolations() 则返回
所有错误的业务逻辑列表。
我们将class 定义为Partial 到项目中,来实现 IsValid 和 GetRuleViolations()方法。Partial
类用来增加方法/属性/事件到 VS 设计器生成的类中(如 LINQ to SQL 设计器生成的 Users类),有助于区分我们编写的代码。
这里,我们使用 C#的 yield return 特性,返回有序的 RuleViolation 集合。
yield return 语句返回集合的一个元素,并移动到下一个元素上。yield break 可停止迭代。包含 yield
语句的方法或属性也称为迭代块。迭代块必须声明为返回 IEnumerator 或 IEnumerable 接口。这个块可以包含多个 yield
return 语句或 yield break 语句,但不能包含 return 语句。
当然这里只是简单的进行数据的验证。
到这里,我们就基本上对Users的Model的编写就基本的完成了。
ok,先在这里,下篇待续。
发表评论
-
asp.net mvc处理css和js版本问题
2018-05-24 16:40 1425当服务的修改了js和css内容后,发布到II ... -
分布式系统调用链监控
2018-02-22 14:36 868分布式系统调用链监 ... -
使用C# 和Consul进行分布式系统协调
2017-05-11 10:41 1317随着大数据时代的到来,分布式是解决大数据问题的一个主要手段, ... -
权限控制
2016-06-16 11:09 809权限控制就是分为“用户登录身份验证”、“控制器方法权限控制” ... -
[ASP.NET MVC ]13 - Helper Method
2016-06-15 13:44 634我们平时编程写一些辅助类的时候习惯用“XxxHelper”来 ... -
[ASP.NET MVC]14 - Unobtrusive Ajax
2016-06-15 12:46 679Ajax (Asynchronous JavaScript ... -
[ASP.NET MVC ]08 - Area 使用
2016-06-15 12:28 796ASP.NET MVC允许使用 Area(区域)来组织Web ... -
将ASP.NET MVC中的form提交改为ajax提交
2016-06-01 15:51 2469在ASP.NET MVC视图中通过 @using (Htm ... -
@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
2016-06-01 14:02 1054ASP.NET MVC 中@Html.Partial,@Ht ... -
Fiddler 模拟http form提交
2016-04-19 10:01 1672以下为代码部分 下面是fiddler调用此form ... -
MVC3 验证码
2011-11-07 14:30 1594MVC3开发,看附件 -
MVC 分页 JQuery Pager
2011-11-07 13:00 3214导入的包 <script type=" ... -
ASP.NET MVC - Creating a SelectListItem with the disabled="disabled" attribute
2011-10-24 15:07 1496要完成这样的效果 <option disabled=& ... -
希望大家告诉我一些关于.net MVC3 MVC2的书籍
2011-10-21 16:36 1503大家好,小弟进入微软时间不久,正在学习微软的MVC3,但是基本 ... -
Jquery与.net MVC结合,通过Ajax
2011-10-14 09:55 2652在工作中做了这么一个东西。 Html端: @using T ... -
Radio Button and CheckBox在FireFox中刷新自动改变选中项
2011-08-29 12:54 2800今天开发过程中出现了这样一个问题,我选中radio butto ... -
jQuery Supertextarea Plugin
2011-08-18 11:46 1291http://truthanduntruth.com/deve ... -
详解ASP.NET MVC中DropDownList的使用
2011-07-27 17:27 2269本文我们将讲解DropDownList的使用,这在ASP.NE ... -
MVC ASP页面叫Control的各种方法
2011-07-11 15:43 1661<%@ Control Language="C ... -
ASP.NET MVC 学习: 视图
2011-07-07 16:24 1856用视图呈现UI 视图可以不包含任何应用逻辑或者数据库 ...
相关推荐
ASP.NET 3.5 MVC(Model...通过这个实战篇的学习,你将能够熟练掌握ASP.NET 3.5 MVC架构,运用其核心特性构建高效、可维护的Web应用程序。实践是检验真理的唯一标准,所以请动手尝试,通过实际项目来巩固这些理论知识。
在实战篇中,采用ASP.NET3.5技术,基于多层架构实现了原创的ASP.NET3.5MVC博客网站,便于初学者学习、运用ASP.NET3.5MVC技术。 目录 第3篇 实战篇 第19章 多层架构的博客网站 第20章 博客网站页面总体设计 第22章...
除了理论知识外,《精通Asp.Net MVC 第五版英文版》还可能涵盖了一些实战应用技巧,比如如何利用NuGet包管理器安装第三方库,如何通过Web API实现RESTful服务,以及如何部署应用程序到IIS等。这些技巧对于实际项目...
ASP.NET MVC5 是微软开发的一款用于构建Web应用程序的框架,它结合了ASP.NET Web Forms、MVC(模型-视图-控制器)模式和Web API,为开发者提供了强大的工具和灵活性。在ASP.NET MVC5中,我们可以利用C#编程语言进行...
本教程“ASP.NET+MVC5+编程实战”将深入讲解这两个技术的结合应用,旨在帮助开发者掌握实际开发技能。 1. **ASP.NET概述** ASP.NET是.NET Framework的一部分,提供了丰富的工具和库,支持多种Web开发模式,如Web ...
#### 二、ASP.NET MVC 4特性 **ASP.NET MVC 4**是该系列的最新版本之一,相比于之前的版本具有以下显著改进: - **支持移动设备**:新增了对移动浏览器的支持,使得开发者可以更容易地创建适应不同设备的应用程序。 ...
ASP.NET MVC SportsStore项目开发是学习和掌握ASP.NET MVC框架的一个典型实例,它涵盖了Web应用程序设计的多个核心概念。在项目开发的第六阶段,我们将关注的是应用的安全性和项目的收尾工作,这些都是确保软件质量...
ASP.NET MVC是一个强大的...通过分析这个“asp.net MVC电商商城项目”,开发者可以深入理解ASP.NET MVC的实战应用,提升Web开发技能。版权说明文档可能包含了关于项目使用的许可信息和限制,务必阅读以确保合法使用。
7. **学习资源**:"ASP.NET+MVC4+Web+编程.pdf"这本书可能是详细讲解ASP.NET MVC4开发的教程,涵盖Web编程基础、MVC框架详解、实战案例等内容,帮助读者从零开始掌握这一技术。 8. **解压密码和下载说明**:通常,...
第2章Bootstrap介绍 默认菜单 含有下拉列表和搜索框的菜单 按钮 警告框 主题 小结 第3章Knockout.js介绍 安装Knockout.js 基本示例 何为MVVM? 创建ViewModel 小结 第4章数据库应用 Entity Framework...
通过研究这个项目,开发者可以学习到如何组织大型ASP.NET MVC项目,理解如何将业务逻辑与UI分离,以及如何有效地管理数据库交互。同时,它也可以作为练习单元测试、集成测试和持续集成/持续部署(CI/CD)的好素材。...
书中可能还涵盖了使用NuGet包管理器来安装和管理第三方库,以及如何部署ASP.NET MVC2应用到IIS服务器。 源码部分将提供实际项目的实例,这将帮助你将理论知识转化为实践技能。你可以跟随源码一步步实现功能,调试...
此外,书中还包含了其他相关的ASP.NET MVC电子书籍资源推荐,比如《ASP.NET 3.5 MVC体验与实战》,为读者提供了更丰富的学习资料。 #### 二、主要内容 1. **第一章:ASP.NET MVC框架简介** - **框架概述**:介绍...
2. 创建第一个ASP.NET MVC项目,包括项目结构、配置文件的设置。 3. MVC组件的详细解释,如控制器、视图、模型、路由等。 4. 数据访问层的实现,如使用ADO.NET或Entity Framework。 5. 视图模板和视图数据的使用,...
### ASP.NET 3.5 MVC中的GridView控件开发 #### 一、自定义GridView控件开发 在ASP.NET 3.5 MVC框架中,开发者可以根据实际需求创建自定义的GridView控件,这些控件通常用于展示数据库中的数据,并提供如排序、...
【C# ASP.NET MVC Web微信三方扫码登录与授权登录】是一个关于使用C#编程...通过这个项目,开发者可以深入了解C# ASP.NET MVC框架与微信API的结合,提升在Web开发中的实战能力,同时掌握第三方登录服务的设计与实现。
2. **第26章** - 可能涵盖了ASP.NET的安全性与身份验证,比如Windows身份验证、Forms身份验证、基于角色的授权,以及如何防止SQL注入和跨站脚本攻击(XSS)。 3. **第15章** - 可能讨论了ASP.NET的缓存策略,如...
- **创建第一个 MVC 应用**:通过创建一个简单的 ASP.NET MVC 应用,理解基本的工作流和目录结构。 - **理解 MVC 模式**:深入探讨 MVC 模式是如何运作的,包括各部分之间的交互方式。 - **掌握关键语言特性**:学习...