当前位置: 移动技术网 > IT编程>开发语言>.net > MVC4制作网站教程第二章 用户注册2.1

MVC4制作网站教程第二章 用户注册2.1

2017年12月12日  | 移动技术网IT编程  | 我要评论
终于开始做用户部分了,先做注册 一用户  1.1用户注册  首先在models里添加用户注册模型类userregister 继承自user,在类中

终于开始做用户部分了,先做注册
一用户 
1.1用户注册 
首先在models里添加用户注册模型类userregister 继承自user,在类中new一下密码字段,并添加重复密码和验证码字段。完成后的代码 

/// <summary>
 /// 用户注册模型
 /// </summary>
 public class userregister : user
 {
 /// <summary>
 /// 密码
 /// </summary>
 [display(name="密码",description="6-20个字符。")]
 [required(errormessage = "×")]
 [stringlength(20,minimumlength=6,errormessage = "×")]
 [datatype(datatype.password)]
 public new string password { get; set; }
 /// <summary>
 /// 确认密码
 /// </summary>
 [display(name = "确认密码", description = "再次输入密码。")]
 [compare("password", errormessage = "×")]
 [datatype(datatype.password)]
 public string repassword { get; set; }
 /// <summary>
 /// 验证码
 /// </summary>
 [display(name = "验证码", description = "请输入图片中的验证码。")]
 [required(errormessage = "×")]
 [stringlength(6,minimumlength=6,errormessage = "×")]
 public string verificationcode { get; set; }
 }

打开controllers,在public actionresult register()上点右键添加视图,选强类型视图,模型类选择userregister 

添加完成后转到register.cshtml编辑视图,删除掉自动生成的内容,手动输入想要的代码,完成后代码如下: 

@model cms.models.userregister

@{
 viewbag.title = "用户注册";
 layout = "~/views/shared/_layout.cshtml";
}
<div class="banner">
 <img src="~/skins/default/images/banner.jpg" />
</div>

@using (html.beginform())
{
 @html.validationsummary(true)
 <div class="form">
 <dl>
  <dt>用户注册</dt>
  <dd>
  <div class="label">@html.labelfor(model => model.username):</div>
  <div class="ctrl">@html.editorfor(model => model.username)
   @html.validationmessagefor(model => model.username)
   @html.displaydescriptionfor(model => model.username)
  </div>
  </dd>
  <dd>
  <div class="label">@html.labelfor(model => model.gender):</div>
  <div class="ctrl">@html.radiobutton("gender", 0) 男 @html.radiobutton("gender", 1) 女 @html.radiobutton("gender", 2, true) 保密
   @html.validationmessagefor(model => model)
   @html.displaydescriptionfor(model => model)
  </div>
  </dd>
  <dd>
  <div class="label">@html.labelfor(model => model.password):</div>
  <div class="ctrl">@html.passwordfor(model => model.password)
   @html.validationmessagefor(model => model.password)
   @html.displaydescriptionfor(model => model.password)
  </div>
  </dd>
  <dd>
  <div class="label">@html.labelfor(model => model.repassword):</div>
  <div class="ctrl">@html.passwordfor(model => model.repassword)
   @html.validationmessagefor(model => model.repassword)
   @html.displaydescriptionfor(model => model.repassword)
  </div>
  </dd>
  <dd>
  <div class="label">@html.labelfor(model => model.securityquestion):</div>
  <div class="ctrl">@html.editorfor(model => model.securityquestion)
   @html.validationmessagefor(model => model.securityquestion)
   @html.displaydescriptionfor(model => model.securityquestion)
  </div>
  </dd>
  <dd>
  <div class="label">@html.labelfor(model => model.securityanswer):</div>
  <div class="ctrl">@html.editorfor(model => model.securityanswer)
   @html.validationmessagefor(model => model.securityanswer)
   @html.displaydescriptionfor(model => model.securityanswer)
  </div>
  </dd>
  <dd>
  <div class="label">@html.labelfor(model => model.email):</div>
  <div class="ctrl">@html.editorfor(model => model.email)
   @html.validationmessagefor(model => model.email)
   @html.displaydescriptionfor(model => model.email)
  </div>
  </dd>
  <dd>
  <div class="label">验证码:</div>
  <div class="ctrl">
   @html.textboxfor(model => model.verificationcode)
   @html.validationmessagefor(model => model.verificationcode)
   <img id="verificationcode" alt="" src="@url.action("verificationcode", "user")" />
   <a id="trydifferent" style="cursor:pointer">换一张</a>
  </div>
  </dd>
  <dd>
  <div class="label">注册条款:</div>
  <div class="ctrl">
   @html.checkbox("agreement",new {@class="required"})
   我已阅读并同意注册条款
  </div>
  </dd>
  <dd>
  <div class="label"></div>
  <div class="ctrl">
   <input type="submit" value="注册" />
  </div>
  </dd>
 </dl>
 <div class="clear"></div>
 </div>
}
<script type="text/javascript" >
 $("#trydifferent").click(function () {
 $("#verificationcode").attr("src", "/user/verificationcode?"+new date());
 })
 
</script>
@section scripts {
 @scripts.render("~/bundles/jqueryval")
}

下面开始写注册处理的代码。 
在controllers,在public actionresult register(){return view();}下面添加一个[httppost]方式的register() action,代码如下: 

[httppost]
 public actionresult register(userregister userreg)
 {
  if (session["verificationcode"] == null || session["verificationcode"].tostring() == "")
  {
  error _e = new error { title = "验证码不存在", details = "在用户注册时,服务器端的验证码为空,或向服务器提交的验证码为空", cause = "<li>你注册时在注册页面停留的时间过久页已经超时</li><li>您绕开客户端验证向服务器提交数据</li>", solution = "返回<a href='" + url.action("register", "user") + "'>注册</a>页面,刷新后重新注册" };
  return redirecttoaction("error", "prompt", _e);
  }
  else if (session["verificationcode"].tostring() != userreg.verificationcode.toupper())
  {
  modelstate.addmodelerror("verificationcode", "×");
  return view();
  }
  userrsy = new userrepository();
  if (userrsy.exists(userreg.username))
  {
  modelstate.addmodelerror("username", "用户名已存在");
  return view();
  }
  user _user = userreg;
  _user.password = common.text.sha256(userreg.password);
  _user.regtime = system.datetime.now;
  if (userrsy.add(_user))
  {
  notice _n = new notice { title = "注册成功", details = "您已经成功注册,用户为:" + _user.username + " ,请牢记您的密码!", dwelltime = 5, navigation = url.action("login", "user") };
  return redirecttoaction("notice", "prompt", _n);
  }
  else
  {
  error _e = new error { title = "注册失败", details = "在用户注册时,发生了未知错误", cause = "系统错误", solution = "<li>返回<a href='" + url.action("register", "user") + "'>注册</a>页面,输入正确的信息后重新注册</li><li>联系网站管理员</li>" };
  return redirecttoaction("error", "prompt", _e);
  }
 }

ok,运行一下看看效果 

输入完数据点注册。ok 看到注册成功的页面了

看一下数据库中也有相应记录了

注册功能就完成了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网