在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
其实我们通常遇到的请求方式无非get/post,但是有很多Web开发人员仍然对二者分不清。 get即通过URL中的QueryString向服务器端传值的方式,它的数据是可见的,可post则是通过一个postdata包向服务器传值,post方式可以传送更多数据(如上传文件),也更安全(如登录)。 本文将演示各种通过客户端页面(即最终生成的页面)向Controller提交请求以及在Controller中接受的方式。 约定本文所有的示例都将是演示一个登录过程,但并不关注判断过程,所以判断方面仅做简单的IF操作。 而提交的实体我们新建一个Account类。 它的内容如下: /// <summary>
/// 用户账户的实体类
/// </summary>
class Account {
/// <summary>
/// 用户名
/// </summary>
string UserName { get; set; }
/// <summary>
/// 密码
/// </summary>
string Password { get; set; }
13: }
文中大多数示例使用了Account类,但并不是所有的示例都使用了Account。 在文中我们并不关注提交信息的页面的Controller,仅关注处理信息的Controller。 而Controller中存在这样一个方法,用于辅助判断: /// <summary>
/// 一个辅助判断的方法
/// </summary>
/// <returns></returns>
string password)
8: {
).ToString();
10: }
以Post提交的数据来看传递之所以这里先说Post是因为相对于Get方式来说Post的情况更全,说明了Post的情况Get也就差不多了。 View: })) {%>
2: <p>
) %></p>
4: <p>
) %></p>
6: <p>
/></p>
8: <%
9: }%>
1.从最基本的开始,使用Request获取提交的信息
/// <summary>
/// 处理请求的Action
/// </summary>
/// <returns></returns>
public ActionResult Process()
6: {
return Content(
])
9: );
10: }
这个无多解释,通过Request.Form来获取表单提交我想是最基本的方法之一,如果您对这种方法不了解的话,那么就说明您的ASP.NET基础有待提交,可以查看ASP.NET五大对象的相关文章。 2.通过Action参数提交 相比之下这个可能更加漂亮些。 /// <summary>
/// 处理请求的Action
/// </summary>
/// <returns></returns>
string password)
8: {
return Content(
10: AreEquals(userName, password)
11: );
12: }
3.UpdateModel来获取传递 /// <summary>
/// 处理请求的Action
/// </summary>
/// <returns></returns>
public ActionResult Process()
6: {
new Account();
//确定a包含Password及UserName这两个属性即可,否则抛出异常
return Content(
10: AreEquals(a.UserName, a.Password)
11: );
12: }
当然我们这里很容易出现异常所以可以使用另一个方法来替代,TryUpdateModel: /// <summary>
/// 处理请求的Action
/// </summary>
/// <returns></returns>
public ActionResult Process()
6: {
new Account();
//这样就可以在没有成功转换时使用另一种处理方式
return Content(
bool.FalseString
11: );
12: }
上面这种UpdateModel的方法已经很简单了,可是ASP.NET MVC为我们提供了更简单的方式: 4.使用绑定 /// <summary>
/// 处理请求的Action
/// </summary>
/// <returns></returns>
public ActionResult Process(Account a)
6: {
return Content(
8: AreEquals(a.UserName, a.Password)
9: );
10: }
就是这么简单
可能存在的问题我们在提交表单时可能有多个Account对象,这种情况下我们应该怎么办呢。 请看下面: View: })) {%>
2: <p>
) %></p>
4: <p>
) %></p>
6: <p>
) %></p>
8: <p>
) %></p>
10: <p>
/></p>
12: <%
13: }%>
注意这里的表单元素的Name、 下面是处理的Action代码: /// <summary>
/// 处理请求的Action
/// </summary>
/// <returns></returns>
public ActionResult Process(Account a ,Account b)
6: {
//处理代码
return View();
9: }
这就一切OK了 |
请发表评论