2

新しく作成された MVC プロジェクトの [アカウント登録] ページで、情報を何も入力せずに [登録] ボタンをクリックすると、次のように表示されます。

•ユーザー名フィールドは必須です。

•パスワードフィールドは必須です。

これらはどこから来たのですか?

4

3 に答える 3

4

(AccountController.cs内の)RegisterActionResultを見てください

  [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid) // here it will check it lal
            {
                // Attempt to register the user
                try
                {
                    WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
                    WebSecurity.Login(model.UserName, model.Password);
                    return RedirectToAction("Index", "Home");
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }

ModelState.IsValidが表示されます。基本的にはチェックするか、モデルに検証の問題があります。

モデルはAccountModelsにあります

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")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }
}

ご覧のとおり、両方ともrequireタグを取得しているため、falseが返され、その横に必須であることが表示されます(入力されていない場合)。

編集:なぜそれがそのテキストであり、他のテキストではないのかを知りたいので、それはデフォルトのテキストなので、マイクロソフトに尋ねてください:)とにかく、ErrorMessageパラメータをRequiredタグに追加することでテキストを好きなように変更できます。

例:

[Required(ErrorMessage = "Hey you forgot me!")]
于 2013-02-01T19:18:44.353 に答える
2

実際のメッセージ文字列は、ビューで呼び出されたMvcHtmlStringヘルパーメソッドによって呼び出されたメソッドSystem.Web.Mvc.ModelStateDictionary. の戻り値です。ValidationExtensionsValidationMessageFor()

于 2013-02-01T19:32:21.307 に答える
0

上部にある[必須]の関連モデルを確認してください。

于 2013-02-01T19:20:09.393 に答える