一、控制器相关性
控制器类中访问级别为公共的方法是操作。如果不希望Controller类中的方法是Action(可以在地址栏中访问),有两种实现:将方法的访问级别设置为private,并在方法上添加属性标记[NonAction]。
对于添加修改等功能模块,我们经常会创建两个同名的action:一个action用于加载添加修改页面;另一个操作用于处理通过添加/修改页面提交的表单数据。如何区分什么时候叫哪个动作?
我们将加载添加|修改页面时调用的动作,并添加[HttpGet]特征标记;在处理页面提交的表单数据时,将[HttpSet]属性标记添加到调用的操作中。
下面的示例代码演示了如何添加学生(与动作相关的代码)。
如何在Action中获取表单提交的数据?
表单中提交的数据可以通过操作参数进行映射。
映射的前提是:Html标签中名称的属性值要与动作中参数的名称一致。
下面的示例代码演示了映射过程(注意粉色方框标记的部分):
如何在动作中映射复杂对象。
对于上面的映射代码,我们还可以有另一种等价的写法,就是将映射的属性定义到一个实体类中,这样我们就可以在动作中添加实体类型的参数。参考代码如下:
如何从一个动作跳到另一个动作?
添加或修改函数后,需要跳转到数据列表页面,可以通过以下代码实现:
Code=return redirecttoaction(“操作名”、“控制器名”)。
第二,观点相关
在aspX视图引擎中,可以使用asp服务器控件,但其功能仅限于生成Html代码,不建议开发人员使用ASP控件事件。因此,建议开发人员手动编写html标记。
但是手写的Html标签很耗时。有没有更好的解决办法?答案是使用Html辅助的方法。
Html辅助方法
html辅助方法的作用是通过调用C#方法快速生成相应的Html标签。
Html辅助方法可以分为两类:弱类型html辅助方法和强类型html辅助方法。
其中,For关键字以强类型的辅助方法结尾。下面的示例代码演示了这两个方法的调用方法以及生成的html源代码。
注意:Html辅助方法的重载形式很多,在开发过程中可以根据实际需要进行选择。例如,要实现包含类styleonchange属性和事件的单行文本框,请参考下面的代码:
强调:如何使用HTML助手方法生成表单标签?
生成表单标签的两种Html辅助方法是Html。BeginForm()和Html。EndForm(),但它们不同于其他正在使用的Html辅助方法。下面的示例代码演示了它们的两种用法:
如何在URL地址中传递参数?
场景一:将学生标识值映射到名为标识的参数
场景2 :将学生标识值映射到名为stuId的参数
场景3 :url地址包括stuId和名称参数
这三种场景的使用代码如下:
在实际开发过程中,一个小的功能模块对应一个控制器。比如学生信息管理就是一个控制器,添加学生、修改学生、查询学生列表、删除学生都可以对应控制器中的Action。Html辅助方法常用于总结。
弱型
强型
单行文本框
Html。文本框()
Html。TextBoxFor()
多行文本框
Html。TextArea()
Html。TextAreaFor()
密码框
Html。密码()
Html。PasswordFor()
复选框
Html。复选框()
Html。CheckBoxFor()
单选按钮
Html。单选按钮()
Html。RadioButtonFor()
下拉列表框
Html。DropdownList()
Html。DropdownListFor()
平铺列表框
Html。列表框()
Html。ListBoxFor()
标签
Html。标签()
Html。标签符()
表单表单
Html。BegInFORMAT()Html。EndForm()
超级链接
Html。ActionLink()
如何在视图中使用下拉列表
步骤1:在下拉列表中构建所需的数据。数据类型为IEnumerableSelectListItem。
第二步:将构造的数据放入控制器的视图数据(视图包|临时数据)属性中。
第三步:使用Html。DropDownList辅助方法在view view中生成下拉列表,使用view view中的ViewData可以得到绑定的数据(换句话说,放置在Controller中的ViewData中的数据可以从View View中的ViewData属性中提取)。
使用Html。DropDownList在视图中绑定IenumerableSelectListItem