6

मेरे विचार संपादित में HTML प्रस्तुत करना करने के लिए, मैं सहायक @Html.EditorForModel() का उपयोग करें।अंतर: [ScaffoldColumn (गलत)] और [डिस्प्ले (AutoGenerateField = false)]

मेरे मॉडल:

[Required(ErrorMessage = "Campo obrigatório")] 
[Display(Name = "Nome completo")] 
public string Name { get; set; } 

[Required(ErrorMessage = "Campo é obrigatório")] 
[StringLength(100, ErrorMessage = "A {0} deve ter pelo menos {2} characteres.", MinimumLength = 6)] 
[DataType(DataType.Password)] 
[Display(Name = "Senha")] 
public string Password { get; set; } 

[DataType(DataType.Password)] 
[Display(Name = "Confirmar senha")] 
[Compare("Password", ErrorMessage = "A nova senha e a confirmação da senha não conincidem.")] 
public string ConfirmPassword { get; set; } 

[Required(ErrorMessage = "Campo obrigatório")] 
[Display(Name = "Convidado")] 
[UIHint("IsGuest")] 
public bool IsGuest { get; set; } 

[RequiredIf("IsGuest", true, ErrorMessage = "Campo é obrigatório")] 
[ScaffoldColumn(false)] 
public string CodeGuest { get; set; } 

संपत्ति: CodeGuest सहायक @Html.EditorForModel() द्वारा नहीं बनाया जाना चाहिए। (मैं इसे स्वयं बनाना चाहेंगे।)

इंटरनेट पर पढ़ना, मैं कई अंक मिल गया है और अंतर पता करना चाहते हैं।

@using BindSolution.AndMarried.Model; 
@model BindSolution.AndMarried.Models.RegisterModel 
@Html.EditorFor(e => e.IsGuest) 
<span>TESTE</span> 
@Html.EditorFor(e => e.CodeGuest) 

प्रश्न::

याद है कि मैं इसे छिपा हो नहीं करना चाहते, इस क्षेत्र को केवल इस

EditorTemplates (IsGuest.cshtml) द्वारा बनाया जाएगा

क्या [ScaffoldColumn (false)] और [Display (AutoGenerateField = false)]

क्यों नहीं कर सकते हैं: अंतर के बीच है मैं [Display (AutoGenerateField = false)] have the effect: 'do not generate the HTML field when calling @ HTML.EditorForModel() `बना देता हूं।

उत्तर

2

EditorForModel() और DisplayForModel() एचटीएमएल सहायक तरीके ViewData.ModelMetadata के आधार पर वर्तमान मॉडल के गुणों को प्रस्तुत करने का निर्णय लेती है। डिफ़ॉल्ट DataAnnotationsModelMetadataProvider DataAnnotation विशेषताओं के आधार पर ModelMetadata के गुण सेट करता है।

ScaffoldColumnAttribute.ScaffoldModelMetadata i.e. ShowForDisplay 'और' ShowForEdit 'के दो गुणों को प्रभावित करता है।

DisplayAttributeModelMetadata के ऊपर दो गुणों को प्रभावित करता नहीं है।

है यही कारण है कि इन दोनों के गुण एचटीएमएल पैदा करने पर एक ही प्रभाव नहीं है।

1

मैं भी अंतर जानना चाहता था, तो निम्न MSDN से है - http://msdn.microsoft.com/en-us/library/dd411771(v=vs.95).aspx

"AutoGenerateField -। इंगित करता है कि क्षेत्र में इस तरह के कॉलम के रूप में उपयोगकर्ता इंटरफ़ेस तत्वों के स्वत: उत्पन्न में शामिल है कि क्या मान यह मान डेटाग्रिड नियंत्रण द्वारा प्रयोग किया जाता है। "

इस से ऐसा लगता है कि इस विशेष संपत्ति केवल डेटा ग्रिड के लिए है।