在前面的创建专辑与编辑专辑的表单中存在一个问题:我们没有进行任何验证.字段的内容可以不输入,或者在价格的字段中输入一些字符,在执行程序的时候,这些错误会导致数据库保存过程中出现错误,我们将会看到来自数据库的错误信息. 通过为模型类增加数据描述的 DataAnnotations ,我们可以容易地为应用程序增加验证的功能.DataAnnotations  允许我们描述希望应用在模型属性上的验证规则,ASP.NET MVC 将会使用这些 DataAnnotations ,然后将适当的验证信息返回给用户…
这一个系列的内容来自微软的音乐商店 Music Store, 这是项目在 Codeplex 上的地址:http://mvcmusicstore.codeplex.com/. 这个项目使用 ASP.NET MVC3 完成,项目中除了提供完整的示例代码之外,还提供一个 100 多页的说明文档,这里的内容就翻译自这篇文档. 在我学习这个项目的过程中,发现有一些地方与文档并不完全一致,项目中也引入了一些新的软件,在第一次使用的时候会比较陌生,因此,将整个项目使用中文 VS2010 重新完成一遍,将原文的…
上一篇中使用字符串,这一篇我们就开始使用视图来处理. 我们已经可以从控制器的 Action 中返回一个字符串,这可以帮助我们更好地理解 Controller 是如何工作的.但是对于创建一个 Web 程序来说还是不够的.下面我们使用更好的方法来生成 HTML,主要是通过模板来生成需要的 HTML,这就是视图所要做的. 增加视图模板 为了使用视图模板,我们需要将HomeController 中的 Index 这个 Action 的返回类型修改为 ActionResult,然后,让它像下面一样返回一个…
这是一个系列文章,原文内容出自微软的 MusicStore. 首先对原文内容进行了简单的翻译,以方便大家参考,另外对于其中的部分内容,也进行了简单的分析,使用的 Visual Studio 也换成了中文版,这样大家看起来也更亲切一些. 下载地址:http://mvcmusicstore.codeplex.com/ MVC 音乐店是用来介绍和展示使用 ASP.NETMVC 以及 Visual Studio 进行 Web 开发的示例应用程序,我们将从基础知识开始,一步一步地进行介绍,因此,初学者也可…
在典型的 Web 应用中,用户请求的 URL 地址通常映射到保存在网站中的文件上,例如,当用户请求 /Products.aspx 的时候,或者 /Products.php 的时候,很可能是在通过处理 Products.aspx 或者 Products.php 文件来完成任务. ASP.NET MVC 的处理方式则不同,它没有映射到文件上,相反,将这些 URL 地址映射到类的方法上,这些类被称为“控制器”,控制器用来接受 HTTP 请求,处理用户的输入,获取或者保存数据,其中的处理方法称为 Act…
查看 StoreManager 控制器的代码 现在,Store Manager 控制器中已经包含了一定数量的代码,我们从头到尾重新过一下. 首先,在控制器中包含了标准的 MVC 控制器的代码,为了使用方便,还可以引用我们的模型类所在的命名空间 MvcMusicStore.Models.控制器还拥有了一个私有的 MusicStoreEntities 的私有成员,以方便控制器中的每个 Action 访问数据库. using System;using System.Collections.Generi…
在上一章,我们已经从数据库获取数据,然后显示出来,这一章,我们将允许编辑数据. 创建 StoreManagerController 控制器 我们将要创建称为 StoreManager 的控制器,对于这个控制器,我们将通过使用 ASP.NET MVC3 中提供的脚手架功能来实现.在添加控制器的窗口中,注意需要选中 为”创建”.”更新”.”删除”和”详细信息” 方案添加操作方法. 在我们点击添加按钮之后,你将会看到 ASP.NET MVC3 的支架机制已经为你在 Controllers文件夹中添加了…
我们的项目从在 Visual Studio 中的文件菜单中选择“新建”,选择“项目”开始. 然后,选择 C# 中的 Web 模板组,在右边的项目模板中选择 ASP.NET MVC3 Web 应用程序,在项目的名称输入框中,输入 MvcMusicStore ,点击确定. 这时,你会到第二个对话框,允许我们设置这个项目关于 MVC 的一些设置,确认选中了“空”项目模板,视图引擎选中 Razor ,点击确定. 这样我们的项目就创建成功了! 我们看一下在这个项目都创建了哪些内容. 在 ASP.NET M…
在使用表单获取用户输入的数据时,我们必须对数据进行有效性验证,因为来自网络的信息都是不可信的.同时也要给用户即时的反馈,避免让用户感到困惑.这就涉及到数据验证的范畴. 数据验证最直接的做法是在服务器端对回传的数据加以甄别.在MessageBoard这个demo中,用户留言时昵称和留言内容都不能为空,并且留言内容不得少于15字.为此我们需要修改Write动作方法. [HttpPost] public ActionResult Write(Message message) { if (string.…
上一次,我们使用了模拟的数据从控制器发送到视图模板.现在,我们开始使用真正的数据库,在这个教程中,我们将指导如何使用 SQL Server Compact 版的数据库,它经常被称为 SQL CE, 来作为数据库引擎,SQL CE 是一个免费的,嵌入式的,基于文件的数据库系统,不需要任何的安装或者配置,很适合本地的开发使用. 注意:可能需要单独安装 SQL Server Compact 4.0 数据库以及 Entity Framework.在我的机器上,这两个软件都是单独安装的. 当然,你还可以使…