西北狼

-- 学而时习之,不亦乐乎!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  MVC

摘要:依赖注入(Dependency Injection)现在DinnersController紧耦合DinnerRepository类,耦合(Coupling)指一个类显式依赖另外的一个类才能工作。 public class DinnersController : Controller { DinnerRepository dinnerRepository = new DinnerRepository... 阅读全文

posted @ 2009-06-01 10:59 西北老狼 阅读(527) 评论(0) 推荐(0) 编辑

摘要:下面我们在范例程序中集成AJAX地图,使应用程序更加可视化。这样,在用户创建、编辑或者查看宴会信息时,可以看到宴会的地理位置信息。创建Map Partial 视图我们计划在应用程序中多个地方使用地图功能。为了保持代码的简洁,我们封装通用的地图功能在一个单一的partial视图模板中,然后在多个Controller action方法和视图中重用。对该新建的partial视图命名为map.ascx,创... 阅读全文

posted @ 2009-06-01 10:30 西北老狼 阅读(420) 评论(0) 推荐(0) 编辑

摘要:前一步我们实现的AJAX功能工作又快又好。有时会很快,以至于用户没有注意到RSVP链接已经更新为新的文本了。为了让输出的文本更加明显,我们对更新的信息添加一个简单的动画,以获得用户的注意。默认的ASP.NET MVC项目模板已经包含了jQuery – 一个非常优秀和流行的开源Javascript 库(微软也支持)。jQuery 提供了大量的功能,包括一个HTML DOM 选择和效果库。... 阅读全文

posted @ 2009-06-01 10:16 西北老狼 阅读(354) 评论(0) 推荐(0) 编辑

摘要:显示用户是否已经回复了用户访问/Dinners/Details/[id] URL,可以查看特定Dinner的详细信息。关于Details action方法的实现,也不在这里描述了。实现RSVP支持的第一步是在Dinner对象(Dinner.cs partial 类)中添加一个IsUserRegistered(username) 的辅助方法,该方法基于是否用户已经回复了该Dinner晚宴,显示tru... 阅读全文

posted @ 2009-06-01 10:06 西北老狼 阅读(815) 评论(0) 推荐(0) 编辑

摘要:现在NerdDinner范例程序可以让访问网站的任何人创建和编辑任何Dinner的信息。下面我们改变这些,仅仅注册和登录的用户才允许创建新的Dinner,并且增加限制,仅仅Dinner的主持人才允许编辑Dinner的详细信息。为了实现上述功能,我们将使用认证和授权来保护应用程序。理解认证和授权认证是识别和验证访问应用程序的客户,简而言之,就是识别访问网站的终端用户是谁。ASP.NET 支持多种方式... 阅读全文

posted @ 2009-05-25 01:50 西北老狼 阅读(1691) 评论(1) 推荐(0) 编辑

摘要:分页如果dinners列表记录过多,为了让用户更方便浏览,我们需要实现分页显示,而不是一次显示大量的记录列表。Index() Action方法更新DinnersController类的Index() action方法代码如下: // // GET: /Dinners/ public ActionResult Index() { var dinners = dinnerRepository.Find... 阅读全文

posted @ 2009-05-14 14:15 西北老狼 阅读(499) 评论(0) 推荐(0) 编辑

摘要:PartialsASP.NET MVC的一个设计理念是“Do Not Repeat Yourself”原则(通常称为DRY)。DRY设计帮助排除重复的代码和逻辑,让应用程序更快创建和更容易维护。我们已经看到DRY原则应用在NerdDinner应用程序的一些方面了。如验证逻辑在Model层实现,在Controller的编辑和创建方法中均可执行;我们也跨越Edit、Detail... 阅读全文

posted @ 2009-05-14 14:03 西北老狼 阅读(532) 评论(0) 推荐(0) 编辑

摘要:ViewData和ViewModel现在我们将进一步扩展DinnersController,实现丰富表单编辑功能。这里我们讨论2种方法,用来将数据从Controller传递到View:ViewData 和 ViewModel。从Controller传递数据到View视图模板MVC模式一个典型的特征是严格的功能隔离。Model模型、Controller控制器和View视图各自定义了作用和职责,且相互... 阅读全文

posted @ 2009-05-14 13:48 西北老狼 阅读(1679) 评论(2) 推荐(0) 编辑

摘要:模型绑定的安全性我们已经讨论了2中不同的方法使用ASP.NET MVC内置的模型绑定功能。第一个方法是使用UpdateModel() 方法更新一个已存在的模型对象的属性;第二个方法是传递模型对象,作为action方法的参数。这两项技术都非常强大和有用。功能虽然强大,但也需要考虑用户输入的安全性,包括绑定对象到表单的输入。一定要通过HTML 编码所有用户输入值,避免HTML和Javascript注入... 阅读全文

posted @ 2009-05-14 13:36 西北老狼 阅读(592) 评论(1) 推荐(0) 编辑

摘要:实现HTTP-GET的Delete Action方法现在开始添加Delete功能到DinnersController类。当用户访问/Dinners/Delete/[id] URL网址时,将访问delete action 方法,下面是该方法的实现: // // HTTP GET: /Dinners/Delete/1 public ActionResult Delete(int id) { Dinne... 阅读全文

posted @ 2009-05-14 13:23 西北老狼 阅读(1162) 评论(1) 推荐(0) 编辑

摘要:实现HTTP-GET的Create Action方法前面我们完成了实现DinnersController类的Edit方法,接下来实现Create方法 – 允许用户添加新的Dinners记录。下面开始实现Create Action方法的HTTP GET行为。在用户访问/Dinners/Create 地址时,将调用该方法,实现代码如下: // // GET: /Dinners/Create... 阅读全文

posted @ 2009-05-14 13:21 西北老狼 阅读(831) 评论(0) 推荐(0) 编辑

摘要:理解ModelState 和验证HTML辅助方法Controller类有一个ModelState属性集合,可以用来提示传递到视图的model对象是否有错误。ModelState中Error记录识别模型属性的名称和错误信息,并允许指定友好的错误信息。在UpdateModel() 辅助方法给model对象的属性赋值时,如遇到异常或错误,会自动写道ModelState集合中。例如,Dinner对象的Ev... 阅读全文

posted @ 2009-05-14 13:17 西北老狼 阅读(5015) 评论(0) 推荐(0) 编辑

摘要:实现HTTP-POST的Edit Action方法现在,我们已经实现了支持HTTP-GET的Edit action方法。当用户请求/Dinners/Edit/2 地址时,接收一个HTML页面。点击Save保存按钮,将触发表单提交到/Dinners/Edit/2 网址,并通过HTTP POST提交<input> 表单中的值。下面,我们开始实现HTTP POST的Edit action 方... 阅读全文

posted @ 2009-05-14 13:15 西北老狼 阅读(5537) 评论(0) 推荐(0) 编辑

摘要:创建、更新、删除记录我们已经介绍了控制器和视图,已经知道如何实现数据列表和详细信息的显示。接下来,我们进一步扩展DinnersController类实现编辑、创建和删除Dinners记录。DinnersController处理URL请求之前我们添加了2个action方法到DinnersController控制器,实现支持如下2个URL:/Dinners和/Dinners/Details/[id]。... 阅读全文

posted @ 2009-05-14 13:13 西北老狼 阅读(1333) 评论(0) 推荐(0) 编辑

摘要:一个新MVC(模型、视图,控制器)框架,它完全只是提供选项,并不替代现有的 WebForms Page Controller 模型。WebForms和MVC这2个模型在以后都会得到完全支持和改进。 第一部分: http://blog.joycode.com/scottgu/archive/2007/11/14/111385.aspx ASP.NET MVC框架(第二部分): URL路径选择 A... 阅读全文

posted @ 2009-01-11 21:47 西北老狼 阅读(507) 评论(0) 推荐(0) 编辑