快速业务通道

ASP.NET MVC框架(第四部分) 处理表单编辑和提交场景

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

这个系列的第一篇建造了一个简单的电子商务产品列表/浏览网站。它讨论了MVC后面的高层次的概念,示范了如何从头创建一个新的 ASP.NET MVC项目,实现和测试这个电子商务产品列表功能。系列的第二篇对ASP.NET MVC框架的URL路径选择(routing)架构做了深入探讨, 讨论了它的工作原理以及你如何使用它来处理更高级的URL路径选择场景。 第三篇讨论了控制器是如何与视图做交互的,特别地讨论了你可以 把视图数据从控制器传给视图以显示返回到客户端的回复的各种方法。

在今天的帖子里,我将讨论你可以用MVC框架来处理表单输入和 提交场景的各种方法,以及讨论一些你可以用来简化数据编辑场景的HTML辅助方法。这里下载我们将在下面为解释这些概念而建造的完整的应 用的源代码。

表单输入和提交场景

为示范如何在ASP.NET MVC框架中处理表单输入和提交场景的一些基本原则,我们将建造一个简单 的产品列表,产品生成,和产品编辑场景。它将拥有三个核心的用户体验:

按类列出的产品列表

通过导航 到/Products/Category/[CategoryID] 这样的URL,用户将能看到在某个特定产品分类内的所有产品的列表:

ASP.NET MVC框架(第四部分) 处理表单编辑和提交场景

添加新产品

用户将能通过点击上面的“添加新 产品”的链接往商店里添加一个新产品。点击之后,会转到/Products/New URL,在这里,系统将提示用户输入要添加的新产品的细节:

ASP.NET MVC框架(第四部分) 处理表单编辑和提交场景

在点击Save(保存)之后,产品就会添加到数 据库中,然后就会转向返回到产品列表网页。

编辑产品

在产品列表网页上,用户可以点击每个产品旁边的“Edit” (编辑)链接。这会转到/Products/Edit/[ProductID] URL,在这里,用户可以改动产品的细节,然后点击Save按钮,往数据库里更新:

ASP.NET MVC框架(第四部分) 处理表单编辑和提交场景

我们的数据模型

我们将使用SQL Server Northwind样品数据库来存储我们的数据。然后我们将使用.NET 3.5内置的LINQ to SQL对象关系映射器(ORM)来对Product, Category, 和 Supplier对象进行建模,这些对象代表了我们的数据库数据表中的记录行。

一开始,在ASP.NET MVC项目中,右击/Models子目录,选择 “添加新项” -> “LINQ to SQL 类”,调出 LINQ to SQL ORM 设计器来对我们的数据对象建模:

ASP.NET MVC框架(第四部分) 处理表单编辑和提交场景

然后我们将在项目中创建一个NorthwindDataContext部分类 (partial class),向里面添加一些辅助方法。我们定义这些辅助方法有2个原因:1)避免在我们的Controller类中直接嵌入我们的LINQ查询 ,2) 将允许我们在将来更容易地改变我们的控制器以使用dependency injection(依赖注入)。

我们将添加的NorthwindDataContext 辅助方法是象下面这样的:

ASP.NET MVC框架(第四部分) 处理表单编辑和提交场景

想进一步了解LINQ 和LINQ to SQL的话,请参阅我这里的LINQ to SQL系列。

建造我们ProductsController控制器

我们将使用单一控制器类来实现这三 个核心用户浏览体验,我们将称这个控制器类为“ProductsController”(在Controllers子目录上右击,选择“添加新项 ” -> “MVC 控制器”来创建这个类:

ASP.NET MVC框架(第四部分) 处理表单编辑和提交场景

我们的 ProductsController 类将通过实现 "Category", "New", 和"Edit" 等action方法来处理象/Products/Category/3, /Products/New, 和/Products/Edit/5这样的URL:

ASP.NET MVC框架(第四部分) 处理表单编辑和提交场景

想了解这些 URL是如何导向到 ProductsController 类的action方法上的话,请阅读我的ASP.NET MVC系列的第一部分和第二部分。在本文的例子里,我们 将使用默认的/[Controller]/[Action]/[Id]路径映射规则,这意味着我们不必配置什么东西,路径导向就会自动发生。

我们控制器的 Action方法将使用三个视图网页,用以显示输出。"List.aspx", "New.aspx", 和 "Edit.aspx" 网页将居于 \Views\Products 子目录下,这些网页将基

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号