传统的webForm,比如用户填一个表单,填得不对的话,alert出来一个框,由于viewState的存在,输入的数据并不会消失。但是在MVC里,这样的情况,应该怎样控制?JS是可以进行简单的判断,但是如果有些判断是要提交的服务器的,然后再返回失败的话,这些输入框的值怎么保留呢?难不成全改成用Ajax提交?大家给个思路!

解决方案 »

  1.   

    ValidationExtensions
     
    @Html.PasswordFor(m => m.OldPassword)
                    @Html.ValidationMessageFor(m => m.OldPassword)
      

  2.   

    MVC里面还是可以输出客户端的脚本的啊。
      

  3.   

    楼上的,你这个是标准的做法。但是感觉不太好控制啊。比如有时候是希望alert一个错出来呢
      

  4.   

    [HttpPost]
            public ActionResult LogOn(LogOnModel model, string returnUrl)
            {
                if (ModelState.IsValid)
                {
                    if (Membership.ValidateUser(model.UserName, model.Password))
                    {
                        FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
                        if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
                            && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
                        {
                            return Redirect(returnUrl);
                        }
                        else
                        {
                            return RedirectToAction("Index", "Home");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "The user name or password provided is incorrect.");
                    }
                }            // If we got this far, something failed, redisplay form
                return View(model);
            }
    你的问题其实在MVC中很简单,以上代码是标准的MVC3工程中自动生成的代码AccountController.cs中,你的问题可参照下
      

  5.   

    当然你要是用Remote特性的话会更简单