アプリケーションの RegisterModel の編集で 2 つの問題が発生しています。
A) フィールド UserName と Email はパスワード フィールドとしてレンダリングされますか?
B) モデル状態は常に無効です (そして私のモデルは空です)
「LoginModel」と「RegisterModel」プロパティを含む「HomeModel」があり、対応するプロパティではなく HomeModel 全体を渡すため、両方が原因だと思います。どうすれば正しいものを渡すことができますか?
私は次のフォームを持っています:
@using (Ajax.BeginForm("Register", "Account", new AjaxOptions { UpdateTargetId = "RegisterAjaxResponse" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="form-row">
<div id="RegisterAjaxResponse"></div>
</div>
<div class="form-row">
@Html.LabelFor(m => m.RegisterModel.UserName)
@Html.PasswordFor(m => m.RegisterModel.UserName)
@Html.ValidationMessageFor(m => m.RegisterModel.UserName)
</div>
<div class="form-row">
@Html.LabelFor(m => m.RegisterModel.Password)
@Html.PasswordFor(m => m.RegisterModel.Password)
@Html.ValidationMessageFor(m => m.RegisterModel.Password)
</div>
<div class="form-row">
@Html.LabelFor(m => m.RegisterModel.ConfirmPassword)
@Html.PasswordFor(m => m.RegisterModel.ConfirmPassword)
@Html.ValidationMessageFor(m => m.RegisterModel.ConfirmPassword)
</div>
<div class="form-row">
@Html.LabelFor(m => m.RegisterModel.Email)
@Html.PasswordFor(m => m.RegisterModel.Email)
@Html.ValidationMessageFor(m => m.RegisterModel.Email)
</div>
<div class="form-row">
<input type="submit" value='Register' />
</div>
}
モデル:
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
[DataType(DataType.Text)]
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")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "EmailAddress")]
public string Email { get; set; }
}
ただし、UserName フィールドと Email フィールドはパスワード フィールドとして表示されます。 http://i.imgur.com/GCamint.png -まだ画像をページングできません。申し訳ありません。
そして、私のモデル状態は常に無効です。
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
string returnValue = "";
if (ModelState.IsValid)
{
//Some code that is never executed
}
return Content(returnValue, "text/html");
}