使用Html.BeginForm来提交表单(转)
2010-05-07 09:57
489 查看
以用户登录这个功能作为例子。
View中主要使用了Html.BeginForm(),
它在客户端产生一个<form action="/account/login" method="post"></form>标签。
具体代码如下:
<% using (Html.BeginForm()){ %>
<ul id="login-form">
<li>
<div>电子邮件:</div>
<div><input name="email" type="text" /></div>
</li>
<li class="form-item">
<div>密 码:</div>
<div><input name="password" type="password" /></div>
</li>
</ul>
<div><input type="submit" value="登录" /></div>
<% } %>
除去<%%>中的内容,其他的html标签跟原始的html文件没什么两样,根本不使用传统的asp.net服务器端控件。
Controller中的login action 对应了相应的View.
要完成用户登录这个功能,首先要用Get的方法获取一个View,然后要用Post的方法接受提交的表单进行用户登录验证处理。
所以在Controller中会有两个Login action 但是这两个是不一样的,区别就在于GET和POST。
Get action 比较简单,如下:
//
// GET: /Account/Login/
public ActionResult Login()
{
return View();
}
POST action 比较复杂一些,要从Model模型中调用相应的功能,如下:
//
// POST: /Account/Login
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(FormCollection collection)
{
try
{
string email = collection["email"];
string password = collection["password"];
password = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password, "md5");
XuShop.Models.common.membersInfo mi = new XuShop.Models.bll.members().Login(email, password);
if (mi != null)
{
HttpCookie c = new HttpCookie("member");
c.Value = XuShop.Models.web.Util.Member2String(mi);
c.Expires = DateTime.Now.AddDays(7);
Response.Cookies.Add(c);
System.Web.Security.FormsAuthentication.SetAuthCookie(mi.Email, false);
string url = Request.QueryString["ReturnUrl"];
if (!string.IsNullOrEmpty(url))
Response.Redirect(url);
return RedirectToAction("Index","Home");
}
else
{
ViewData["msg"] = "帐户或密码错误!";
return View();
}
}
catch(System.Exception ex)
{
ViewData["msg"] = ex.Message;
return View();
}
}
上面的 [AcceptVerbs(HttpVerbs.Post)]
指示该action使用POST。默认使用的是GET.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/XuShop/archive/2009/09/06/4525778.aspx
View中主要使用了Html.BeginForm(),
它在客户端产生一个<form action="/account/login" method="post"></form>标签。
具体代码如下:
<% using (Html.BeginForm()){ %>
<ul id="login-form">
<li>
<div>电子邮件:</div>
<div><input name="email" type="text" /></div>
</li>
<li class="form-item">
<div>密 码:</div>
<div><input name="password" type="password" /></div>
</li>
</ul>
<div><input type="submit" value="登录" /></div>
<% } %>
除去<%%>中的内容,其他的html标签跟原始的html文件没什么两样,根本不使用传统的asp.net服务器端控件。
Controller中的login action 对应了相应的View.
要完成用户登录这个功能,首先要用Get的方法获取一个View,然后要用Post的方法接受提交的表单进行用户登录验证处理。
所以在Controller中会有两个Login action 但是这两个是不一样的,区别就在于GET和POST。
Get action 比较简单,如下:
//
// GET: /Account/Login/
public ActionResult Login()
{
return View();
}
POST action 比较复杂一些,要从Model模型中调用相应的功能,如下:
//
// POST: /Account/Login
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(FormCollection collection)
{
try
{
string email = collection["email"];
string password = collection["password"];
password = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password, "md5");
XuShop.Models.common.membersInfo mi = new XuShop.Models.bll.members().Login(email, password);
if (mi != null)
{
HttpCookie c = new HttpCookie("member");
c.Value = XuShop.Models.web.Util.Member2String(mi);
c.Expires = DateTime.Now.AddDays(7);
Response.Cookies.Add(c);
System.Web.Security.FormsAuthentication.SetAuthCookie(mi.Email, false);
string url = Request.QueryString["ReturnUrl"];
if (!string.IsNullOrEmpty(url))
Response.Redirect(url);
return RedirectToAction("Index","Home");
}
else
{
ViewData["msg"] = "帐户或密码错误!";
return View();
}
}
catch(System.Exception ex)
{
ViewData["msg"] = ex.Message;
return View();
}
}
上面的 [AcceptVerbs(HttpVerbs.Post)]
指示该action使用POST。默认使用的是GET.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/XuShop/archive/2009/09/06/4525778.aspx
相关文章推荐
- 使用Html.BeginForm来提交表单
- 使用Html.BeginForm来提交表单(转)
- [.Net码农][MVC]使用Html.BeginForm来提交表单
- 使用Html.BeginForm来提交表单
- html中表单使用post方式提交,为什么没有值? get方式可以得到控件的值
- 使用Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { id = "formInfo" })提交数据的问题
- html中 如何使用 Javascript 实现防止表单反复提交
- Html表单提交到Servlet输出到页面乱码 Html使用的编码是UTF-8编码显示页面,之后使用form表单提交字段到Servlet中,Servlet将利用getParamer方法获得fo
- form表单和ajax表单提交(Html.BeginForm()、Ajax.BeginForm())的差别
- MVC中处理表单提交的方式(使用html扩展方法+juqery插件)
- form表单和ajax表单提交(Html.BeginForm()、Ajax.BeginForm())的差别
- asp.net MVC 使用Ajax.BeginForm 无刷新提交from表单
- asp.net mvc4 Html.BeginForm表单提交
- 使用jQuery的文件上传插件Uploadify完成html的表单提交
- 使用Asp.net 接收html提交的表单
- 后台开发学习(四)HTML5表单的使用PHP环境搭载和HTML表单的提交
- 使用Asp.net 接收html提交的表单
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
- MVC |表单提交 Html.BeginForm
- 关于C++使用libcurl提交表单方式上传文件时提交表单参数[同HTML表单]