Aşağıdaki kodu kullanarak yeni bir kullanıcı için bir görünüm modeli oluşturmak istiyorum. "Kullanıcı" sınıfı, veritabanına devam edeceğim sadece iki özelliği (şimdilik basitleştirilmiş) içerir; görünüm modeli, yalnızca görünümde kullanılan "şifre karşılaştır" alanını ekler. Görünüm modelinin "Kullanıcı" bölümünde tanımlanan tüm alanları tekrarlamak yerine "Kullanıcı" sınıfını doğrudan kullanmasını tercih ederim.Karşılaştırın (password) nitelik
Sorum, "ComparePassword" alanının [Compare] özelliğindeki "User.Password" konusuna nasıl düzgün bir şekilde başvuruda bulunabilirim?
public class User
{
[Required]
public string UserName { get; set; }
[Required]
[DisplayName("Password")]
[DataType(DataType.Password)]
public string Password { get; set; }
}
public class NewUserViewModel
{
public User User { get; set; }
[Required]
[DataType(DataType.Password)]
[DisplayName("Re-enter Password")]
[Compare("Password", ErrorMessage="Passwords must match")]
public string ComparePassword { get; set; }
}
"Parola" ve "ComparePassword" için oluşturulan HTML aşağıdadır.
<input class="text-box single-line password"
data-val="true"
data-val-required="The Password field is required."
id="User_Password"
name="User.Password"
type="password" value="" />
<input class="text-box single-line password"
data-val="true"
data-val-equalto="Passwords must match"
data-val-equalto-other="*.Password"
data-val-required="The Re-enter Password field is required."
id="ComparePassword"
name="ComparePassword"
type="password" value="" />
anahtarı "veri val-equalto-Diğer" Javascript tarafından işlendiğini nasıl. "Parola" veya "User_Password" işlevlerini kullanmazsam hiçbir şey yapılmaz - hiçbir denetim gerçekleştirilmez. "User.Password" kullanırsam, kontrol gerçekleştirilir, ancak her zaman başarısız olur.
Doğrudan jQuery'de bununla ilgili gerçek bir sorunum yok, ancak mümkünse [Compare] özelliğini kullanmayı tercih ediyorum.
Ben aynı sorunu yaşıyorum (Sorun aynı görünmekle birlikte FluentValidation kullanıyorum). Şansın var mı? – Peter
Ben aynı şeyi yapıyorum ve bu benim için çalışmıyor. "[ViewModel] .User.Password" mevcut değil ve formun görüntülenmesinden önce bir çalışma zamanı hatası atar. Altında bir özellik ve parola olarak kullanıcı ile bir Görünüm Modeli var. Herhangi bir fikir? – vbullinger