मैं नीचे दिए गए कोड का उपयोग कर एक नए उपयोगकर्ता के लिए एक दृश्य मॉडल बनाना चाहता हूं। "उपयोगकर्ता" श्रेणी में केवल दो गुण होते हैं (अब के लिए सरलीकृत) कि मैं डेटाबेस तक जारी रहूंगा; दृश्य मॉडल "पासवर्ड की तुलना करें" फ़ील्ड जोड़ता है, जिसका उपयोग केवल दृश्य में किया जाता है। मैं "उपयोगकर्ता" में परिभाषित सभी फ़ील्ड को दोहराने के बजाय दृश्य मॉडल को सीधे "उपयोगकर्ता" वर्ग का उपयोग करना पसंद करूंगा।तुलना करें (पासवर्ड) विशेषता
मेरा प्रश्न है कि मैं "तुलना करें" फ़ील्ड के लिए [तुलना] विशेषता में "User.Password" का सही तरीके से संदर्भ कैसे लगा सकता हूं?
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; }
}
"पासवर्ड" और "तुलनापास्वर्ड" के लिए जेनरेट किया गया HTML नीचे दिया गया है।
<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="" />
कुंजी कैसे "डेटा-वैल-equalto-अन्य" जावास्क्रिप्ट द्वारा नियंत्रित किया जाता है। अगर मैं "पासवर्ड" या "उपयोगकर्ता_Password" कुछ भी नहीं होता है - कोई जांच नहीं की जाती है। अगर मैं "उपयोगकर्ता का उपयोग करता हूं। पासवर्ड" चेक किया जाता है लेकिन हमेशा विफल रहता है।
मुझे सीधे jQuery में ऐसा करने में कोई वास्तविक समस्या नहीं है, लेकिन यदि संभव हो तो [तुलना] विशेषता का उपयोग करना पसंद करेंगे।
मैं ठीक उसी समस्या हो रही है (मैं FluentValidation का उपयोग कर रहा हूँ हालांकि समस्या समान दिखती है)। कोइ भाग्य? – Peter
मैं वही काम कर रहा हूं और यह मेरे लिए काम नहीं कर रहा है। यह कहता है "[ViewModel] .User.Password" मौजूद नहीं है और फ़ॉर्म को प्रदर्शित करने से पहले रन टाइम त्रुटि फेंकता है। मेरे पास एक संपत्ति और पासवर्ड के रूप में उपयोगकर्ता के साथ एक स्ट्रिंग संपत्ति के रूप में एक दृश्य मॉडल है। कोई विचार? – vbullinger