• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ASP.NET MVC 重点教程一周年版 第十回 请求Controller

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

    其实我们通常遇到的请求方式无非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了


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.net MVC 抓取微信文章数据(正文) - 野码发布时间:2022-07-10
下一篇:
ASP.NET获取IP与MAC发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap