URLで渡すパラメーターがあります。ユーザーが URL をクリックすると、追加情報を入力できるサイトに移動します。(パスワードのリセット) URL の一部として渡すトークンを取得し、別のコントローラーに送信するモデルに配置する必要があります。このコントローラーは、トークンとパスワードを検証し、検証された場合はパスワードをリセットします。モデルで渡されたパラメーターを取得する方法がわかりません。
私のコントローラー:
[AllowAnonymous]
public ActionResult TokenPasswordReset(string token)
{
return View();
}
私が生成する私のURLは
http://localhost:53272/Account/TokenPasswordReset?wzBXjkT1Y8qmWIECwSIFYQ2
私の見解では、非表示のモデル値を設定しようとしています。
<fieldset>
<legend>Reset Password Form</legend>
<ol>
<li>
@Html.LabelFor(m => m.NewPassword)
@Html.PasswordFor(m => m.NewPassword)
</li>
<li>
@Html.LabelFor(m => m.ConfirmPassword)
@Html.PasswordFor(m => m.ConfirmPassword)
</li>
</ol>
@Html.HiddenFor(model.UserToken = Request.Params["token"])
<input type="submit" value="TokenPasswordReset" />
</fieldset>
パスワードと確認パスワードは問題ありません。URLからトークンを引き出してmodel.UserTokenに入れる方法がわかりません。これを行うと、次のエラーが表示されます
「モデル」という名前は現在のコンテキストには存在しません
編集: 以下に示すようにモデルに変更すると、新しいエラーが発生します。何らかの理由で、HiddenFor でモデルを取得しません。