关于Asp.net mvc 2 Ajax thiskbox应用
当用户设置密码问题和答案的时候,验证用户的密码,当密码不正确时我们返回错误结果提示用户,如果密码正确导航到密码设置问题和答案页。
在这其中使用了4个页面,模板页(Site.Master),用户信息页(LogOnUserControl.ascx),设置密码问题和答案页(ChangePasswordQuestionAndAnswer.aspx),验证用户密码页(ValidationUserPassword.ascx)。
好了我们先看SIte.Master,这个页面嵌套了LogOnUserControl.ascx,
而LogOnUserControl.ascx有一个导航让用户设置密码问题和答案
仔细看这个导航我在这里使用thiskbox激活验证用户密码页ValidationUserPassword.ascx。
ValidationUserPassword.ascx代码

<div id="passwordmain">
<% using (Ajax.BeginForm("ValidationUserPassword", "Account",new AjaxOptions { UpdateTargetId = "passwordmain"}))
{ %>
<fieldset>
<legend>用户密码</legend>
<div class="editor-label">
<%= Html.LabelFor(model => model.Password)%>
</div>
<div class="editor-field">
<%= Html.PasswordFor(model => model.Password)%>
<%= Html.ValidationMessageFor(model => model.Password)%>
</div>
<p>
<input id="Submit" type="submit" value="登录" />
</p>
</fieldset>
<% } %>
</div>
ValidationUserPassword.aspx 后台Action处理代码如下:

2 [AcceptVerbs(HttpVerbs.Post)]
3 public ActionResult ValidationUserPassword(ValidationUserPassword model)
4 {
5 if (ModelState.IsValid)
6 {
7 if (MembershipService.ValidateUser(User.Identity.Name, model.Password))
8 {
9 //return RedirectToAction("ChangePasswordQuestionAndAnswer");
10 }
11 else
12 {
13 ModelState.AddModelError("Password", "密码错误请重试!");
14 }
15 }
16 return View();
17 }
18
运行结果截图说明:
首先激活验证密码thickbox层,填写密码
密码错误,得到了我们想要的结果
当密码正确时,我们得到了这样的结果
就其原因当验证密码的时候使用的是AJAX,当密码正确的时候它把ChangePasswordQuestionAndAnswer.aspx更新到了ValidationUserPassword.ASPX.
现在问题来了,我不想让它更新而是直接跳转到ValidationUserPassword.ASPX就像这样
问题解决了,原来从后台返回 return JavaScript("document.location = '/Account/LogOn'");
这样就不会去更新原来的层了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?