当我尝试在我的项目中重置密码时,它会抛出异常。 这是我的模型
public class ResetPasswordConfirmModel
{
public string Toke { get; set; }
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "New password")]
public string NewPassword { get; set; }
[DataType(DataType.Password)]
[Display(Name = "confirm new password")]
[System.Web.Mvc.Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
帐户控制器
[AllowAnonymous]
[HttpPost]
public ActionResult ResetPasswordConfirmation(ResetPasswordConfirmModel model)
{
if(WebSecurity.ResetPassword(model.Toke,model.NewPassword))
{
return RedirectToAction("PasswordResetSuccess");
}
return RedirectToAction("PasswordResetFailure");
}
这是引发异常的视图
@model Champiosnhip.WebUI.Models.ResetPasswordConfirmModel
@{
ViewBag.Title = "ResetPasswordConfirmation";
}
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Confrim password reset</legend>
<div class="label">@Html.LabelFor(t => t.Toke)</div>
<div>@Html.EditorFor(t => t.Toke)
@Html.ValidationMessageFor(t => t.Toke)
</div>
@Html.Hidden("Toke", Model.Toke)
<div class="label">@Html.LabelFor(np=>np.NewPassword)</div>
<div class="field-validation-valid">@Html.EditorFor(np=>np.NewPassword)
@Html.ValidationMessageFor(np=>np.NewPassword)
</div>
<div class="label">@Html.LabelFor(cp=>cp.ConfirmPassword)</div>
**<div>@Html.EditorFor(cp=>cp.ConfirmPassword)</div>**
@Html.ValidationMessageFor(cp=>cp.ConfirmPassword)
Mvc4异常信息
The property Champiosnhip.WebUI.Models.ResetPasswordConfirmModel.Password could not be found.
整个例外情况可以在https://docs.google.com/document/d/13t-9A60sYqFR-gWqwkCSlHE8sovgARy-wie_o8FGhOg/edit?usp=sharing中找到
em.. 我在帐户模型中的密码属性
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email")]
public string Email { get; set; }
[Required]
[DataType(DataType.PhoneNumber)]
public string Mobile { get; set; }