バックエンド データベースでユーザーのパスワードを更新する Web サイトのパスワード リセット機能に取り組んでいます。強力なパスワード、つまり Password123 を入力して、ユーザーのパスワードを変更することに成功しました。また、MVC アーキテクチャは、十分に弱いパスワード、つまり abc を入力するときは十分満足していますが、一致しないパスワードと確認を入力すると、つまり Password123! と Password1234! 次に、次の行のオブジェクト参照エラーに関連するエラーが発生します。
@using (Html.BeginForm("Reset", "Reset", new { qString = Model.QueryString } ))
これが私のコードの全文です:
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@model ......ResetModel
<script type="text/javascript">
$(document).ready(function () {
$('#close').click(function (event) {
closeAjax();
event.cancelBubble = true;
event.returnValue = false;
event.preventDefault();
event.stopPropagation();
});
});
$(document).ready(function () {
$("#index").validate({
rules: {
password: {
required: true, minlength: 6
},
confirmpassword: {
required: true, equalTo: "#password", minlength: 6
}
},
messages: {
password: "Please enter your new password.",
c_password: "Please confirm your new password."
}
});
});
</script>
<div class="form_container">
<div class="logo">
<a href=""><img class="logo" src="@Url.Content("~/Content/SP_Logo_white.png")" alt="Cloud"/></a>
</div>
<div class="reset">
<h3>Password Reset</h3>
<div class="reset-help">
<p>Forgot your password? Use the form to change or reset your password.</p>
</div>
@using (Html.BeginForm("Reset", "Reset", new { qString = Model.QueryString } ))
{
<label for="reset">UserName:</label>
<input type="text" id="username" name="username" /><br />
<label for="password">New Password:</label>
<input type="password" id="password" name="password" /><br />
<label for="confirmpassword">Confirm Password:</label>
<input type="password" id="confirmpassword" name="confirmpassword" />
<p><input type="submit" id="submit" value="Submit" /></p>
}
</div>
</div>
パスワードが一致しない場合にのみこれが発生する理由を誰かが理解するのを手伝ってくれますか?また、JavaScript検証が設定されていない理由も理解できません
レンダリングされた HTML は次のとおりです。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Password Reset</title>
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
</head>
<body>
<img src="/2.jpg" alt="Big Pic" class="bg" />
<div class="top_40"></div>
<section id="main">
<script type="text/javascript">
$(document).ready(function () {
$('#close').click(function (event) {
closeAjax();
event.cancelBubble = true;
event.returnValue = false;
event.preventDefault();
event.stopPropagation();
});
});
$(document).ready(function () {
$("#index").validate({
rules: {
password: {
required: true, minlength: 6
},
c_password: {
required: true, equalTo: "#password", minlength: 6
}
},
messages: {
password: "Please enter your new password.",
c_password: "Please confirm your new password."
}
});
});
</script>
<div class="form_container">
<div class="logo">
<a href=""><img class="logo" src="/Content/SP_Logo_white.png" alt="Cloud"/></a>
</div>
<div class="reset">
<h3>Password Reset</h3>
<div class="reset-help">
<p>Forgot your password? Use the form to change or reset your password.</p>
</div>
<form action="/Reset/Reset?qString=qKkQBXYEsY0GthEqFIuWYfXQ1CKcUioxpbY8vfhqN9nlOcHrZdLIYzxxhtV0YK73" method="post"> <label for="reset">UserName:</label>
<input type="text" id="username" name="username" /><br />
<label for="password">New Password:</label>
<input type="password" id="password" name="password" /><br />
<label for="confirmpassword">Confirm Password:</label>
<input type="password" id="confirmpassword" name="confirmpassword" />
<p><input type="submit" id="submit" value="Submit" /></p>
</form> </div>
</div>
</section>
<div class="bottom_80"></div>
</body>
</html>