【Asp.net入门11】第一个ASP.NET 应用程序-处理窗体(2)

检查IsPostBack属性,可以确定响应的请求是否为发回到服务器的窗体。如果是,则创建GuestResponse数据模型对象的一个新实例,并将此实例传递给TryUpdateModel方法(该方法继承自基本的Page类,也就TryUpdateModel是Default类的父类Page类里的一个成员方法。)

TryUpdateModel方法将执行一个称为模型绑定(model binding)的过程,在此过程中,将使用来自浏览器请求的数据值填充数据模型对象的属性。TryUpdateModel方法的另一个参数是ASP.NET用于获取所需值的对象——System.Web.ModelBinding.FormValueProvider类,它提供来自窗体数据的值。第三部分将详细介绍模型绑定,调用TryUpdateModel方法的结果是:更新GuestResponse对象的属性,以反映用户在窗体中提交的数据值,然后将GuestResponse对象存储在存储库中。

我们希望在用户提交窗体时向用户提供某种反馈,Response.Redirect方法可以实现这一目的,该方法会重定向用户的浏览器。如果WillAttend属性为true,说明用户将参加晚会,则将该用户重定向到seeyouthere.html文件;否则会将该用户重定向到sorryyoucantcome.html文件。

1. 创建HTML响应文件

并不是ASP.NET应用程序中的所有页面都必须从Web窗体文件生成,还可以包括常规的静态HTML文件。要创建响应文件,在Solution Explorer中右键单击PartyInvites项,然后从弹出式菜单中选择Add→New Item。从Add New Item(添加新项)对话框中选择HTML Page(HTML页)模板,并将名称设置为seeyouthere.html。最后,单击Add按钮创建HTML文件。该文件的内容如代码清单1-11所示。

代码清单1-11 seeyouthere.html文件的内容

重复上述过程,创建sorryyoucantcome.html文件,它的内容如代码清单1-12所示。

代码清单1-12 sorryyoucantcome.html文件的内容

2. 将HTML元素纳入作用域

我们已建立了应用程序的基本结构,但似乎还差点什么。我们需要告诉Visual Studio,当应用程序启动时,应加载哪个文件。在此之前,这并不是问题,因为只有Default.aspx这一个文件,Visual Studio足够智能,知道这是所需要的文件。但现在还有其他几个HTML文件,因此需要向Visual Studio发出指示。在Solution Explorer中右键单击Default.aspx项,然后从弹出菜单中选择Set as Start Page(设为起始页)。

现在,你可以从Debug菜单中选择Start Debugging(启动调试),或单击Internet Explorer工具栏按钮来启动应用程序。填写窗体,确保选择了select元素中的Yes选项。提交时,你却看到只有在选择No选项时才会看到的响应,如图1-10所示。很明显,什么地方出错了。

之所以会出现这个问题,是因为在处理Web窗体文件时,ASP.NET仅查找runat特性值为server的元素。所有其他元素均被忽略,由于Default.aspx文件中的input元素和select元素没有这个特性/值组合,模型绑定过程找不到在HTML窗体中提交的值。在代码清单1-13中,我们更正了这个问题。

代码清单1-13 向input元素和select元素添加runat特性

提示 除server以外,runat特性并没有其他值。如果忽略runat特性,或使用除server以外的其他值,ASP.NET将找不到HTML元素。如果Web窗体未表现出预期行为,首先你应检查是否缺少了runat特性。

启动应用程序并重新填写窗体。提交窗体后,你将会看到正确的响应,如图1-11所示。

时间: 2024-10-23 07:40:40

【Asp.net入门11】第一个ASP.NET 应用程序-处理窗体(2)的相关文章

《Go语言入门》第一个Go语言Web程序——简单的Web服务器

概述 上一篇讲了 <Go语言入门>第一个Go语言程序--HelloWorld,接下来讲一下Go语言Web开发入门必修课:第一个Go语言Web程序--简单的Web服务器. 与其它Web后端语言不同,Go语言需要自己编写Web服务器. 有关本地环境的搭建与基础学习,请参考: <Go语言入门>如何在Windows下安装Go语言编程环境 Go语言Web应用:IBM的云平台Bluemix使用初体验--创建Go语言 Web 应用程序,添加并使用语言翻译服务 Web服务器代码 Google在ht

Servlet入门(第一个Servlet的Web程序)

新建maven项目,注意项目的类型 工程名为ServletExample 点击Finish,建立maven项目完成如下 生成后的目录没有java源码目录,按照maven的约定,还要新建src/main/java的源码目录.选中项目,点击鼠标右键 不知道为什么,新建src/main/java目录时,eclipse报这个目录已经存在.没办法,先建立src/main/java2,然后再重构为src/main/java 配置maven的构建文件pom.xml <?xml version="1.0&

[ASP.NET MVC2 系列] ASP.Net MVC教程之《在15分钟内用ASP.Net MVC创建一个电影数据库应用程序》

[ASP.NET MVC2 系列]      [ASP.NET MVC2 系列] ASP.Net MVC教程之<在15分钟内用ASP.Net MVC创建一个电影数据库应用程序>      [ASP.NET MVC2 系列] ASP.Net MVC教程之<ASP.NET MVC 概述>     [ASP.NET MVC2 系列] 理解MVC应用程序的执行过程     [ASP.NET MVC2 系列] ASP.NET MVC Routing概述      [ASP.NET MVC2

ASP.NET MVC 入门11、使用AJAX

asp.net mvc 支持微软自身Ajax 和 JQuery框架 asp.net mvc View视图可以理解为 一个包含"<%%>"变量引和的模板. Script与HTML优雅分离参见: http://www.cnblogs.com/QLeelulu/archive/2008/10/22/1317214.html ASP.NET MVC 入门11.使用AJAX

[Asp.net入门07】第一个ASP.NET 应用程序-创建数据模型和存储库

1.理解概念 先理解一下两个概念. 模型 模型是指数据的结构类型,以及可调用的方法.对面向对象编程方法来说,其实就是类.模型类就是一个描述数据的类.只有把数据按一定方式描述出来,我们才能在程序中方便地使用它. 存储库 直白解释就是存储数据的仓库.通常就是用数据库来存储数据,当然也有文件存储等其他存储方式.存储库的作用很显然是将数据永久保存起来. 2.创建数据模型 我们在[Asp.net入门06]第一个ASP.NET 应用程序(4)-案例说明中定义的案例项目比较简单,只需要一个简单的数据模型.下面

ASP.NET Core 入门教程 1、使用ASP.NET Core 构建第一个Web应用

原文:ASP.NET Core 入门教程 1.使用ASP.NET Core 构建第一个Web应用 一.前言 1.本文主要内容 Visual Studio Code 开发环境配置 使用 ASP.NET Core 构建Web应用 ASP.NET Core Web 应用启动类说明 ASP.NET Core Web 项目结构说明 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10 SDK 2.1.401 ASP.NET Core 2.1.3 IDE Visual Studio Code

【Asp.net入门12】第一个ASP.NET 应用程序-创建摘要视图

目前已经完成了应用程序的基本结构单元,受邀者也能够做出回复.这一节将添加一个支持组件,以显示收到的回复摘要,以便用户的朋友了解谁会参加晚会,并做出适当安排.在Solution Explorer中右键单击PartyInvites项,然后从弹出菜单中选择Add→Web Form.将名称设置为Summary,然后单击OK按钮,新创建一个文件Summary.aspx,这个新文件的内容如代码清单1-14所示. 代码清单1-14 Summary.aspx文件的内容 这是你的第一个ASP.NET应用程序,我们

【Asp.net入门15】第一个Asp.net应用程序-输入验证

前言 所谓输入验证,顾名思义就是验证用户输入符不符合要求.前面我们已经完成了这个简单的应用程序,但还有一个问题需要解决:用户可以在Default.aspx窗体中 提交任何数据,甚至可以提交根本不包含任何数据的窗体.我们需要确保用户填写了所有窗体字段, 以便收集所有相关数据,知道谁会参加晚会,谁拒绝参加晚会.下面的内容就是教你如何实现这个验证过程. 主要内容 客户端验证和服务器端验证的概念 数据注解用法 操作和分析 ASP.NET提供了各种不同的验证方法,最常用的方法是对数据模型类应用特性来实现验

[转]ASP.NET MVC 入门11、使用AJAX

在ASP.NET MVC beta发布之前,M$就宣布支持开源的JS框架jQuery,然后ASP.NET MVC beta发布后,你建立一个ASP.NET MVC beta的项目后,你可以在项目的scripts目录下找到ASP.NET AJAX和jQuery的JS.反正我是比较喜欢jQuery的,所以对于M$此举还是挺欣慰的. 废话不多说,我们使用AJAX来实现发表评论的功能吧.先来看看怎样使用M$的JS框架来进行异步AJAX请求. 首先,当然是要引入M$的AJAX框架的JS: <script