次のエラーが表示されます。
Validation type names in unobtrusive client validation rules must be unique. The following validation type was seen more than once: required
カスタム検証とninjectについていくつか読んだことがありますが、そうではないと思います。
管理者がユーザーを作成/編集できるカスタム アカウント管理システムを作成しています。を使用していASP.NET Membership, Role, Profile
ます。チェックを入れて新しいアプリケーションを作成すると、Internet
そのすべてのアカウントが作成されます。私がやろうとしたのRegisterModel
は、AccountManagement
Area
. しかし、エラーが表示され始めました。カスタム検証プロバイダーなどはありません。エラー/例外も同様に表示さAccount
Views
れます (MVC テンプレートによって作成されたもの)。
ビューの次の行でエラーが発生します。
<div class="editor-label">
@Html.LabelFor(model => model.User.UserName)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.User.UserName) <!-- THIS LINE -->
@Html.ValidationMessageFor(model => model.User.UserName)
</div>
私のモデルはViewModel
、プロパティを持つクラスです:
public RegisterModel User {get;set;}
私はこのウェブサイト全体を、単に再利用する場合を除いて、何をするにしても問題なく書いてきましたRegisterModel
. それ以来、私はまったく新しいModel
呼び出しを作成し、それNewUserModel
を参照するだけでArea
無駄にしようとしました。
をIoC/DI としてDependencyResolver
使用しています。Ninject
それが問題になるとは思えない……。
モデル:
namespace MyApplication.Areas.AccountManagement.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
public class NewUserModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Required, RegularExpression(@"[0-9]{8}", ErrorMessage = "Please enter in an 8 digit Intel Worldwide Id")]
[Display(Name = "WWID")]
public string WWID { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { 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.Web.Mvc.Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
}