2010-05-13 15 views
5

मैं एएसपी.नेट और सी # के लिए काफी नया हूं। मैंने एएसपी.NET सदस्यता प्रदाता की मूल बातें सीखने का दिन बिताया है, मैंने अपना सभी वैधकर्ता बनाया है लेकिन पृष्ठ पर मेरे त्रुटि संदेश को आउटपुट करने पर अटक गया है। अब तक प्रमाणकों:एएसपी.नेट एमवीसी पेज पर प्रमाणीकरण त्रुटि संदेश कैसे प्रदर्शित करें?

private void LogCreateUserError(MembershipCreateStatus status, string username) 
{ 
    string reasonText = status.ToString(); 

    switch (status) 
    { 
     case MembershipCreateStatus.DuplicateEmail: 
     case MembershipCreateStatus.DuplicateProviderUserKey: 
     case MembershipCreateStatus.DuplicateUserName: 

      reasonText = "The user details you entered are already registered."; 
      break; 

     case MembershipCreateStatus.InvalidAnswer: 
     case MembershipCreateStatus.InvalidEmail: 
     case MembershipCreateStatus.InvalidProviderUserKey: 
     case MembershipCreateStatus.InvalidQuestion: 
     case MembershipCreateStatus.InvalidUserName: 
     case MembershipCreateStatus.InvalidPassword: 

      reasonText = string.Format("The {0} provided was invalid.", status.ToString().Substring(7)); 
      break; 
     default: 
      reasonText = "Due to an unknown problem, we were not able to register you at this time"; 
      break; 

    } 

    //CODE TO WRITE reasonText TO THE HTML PAGE ?? 

} 

पेज के रूप में मैं पर एएसपी में बनाया भरोसा है पर varible परिणाम उत्पादन के लिए सबसे अच्छा तरीका क्या है।

+0

इस का उपयोग कर ASP.NET MVC या WebForms है प्रदर्शित करने के लिए एक लेबल नियंत्रण का उपयोग कर सकते हैं? साथ ही, क्या आपके पास उस पृष्ठ पर कोई विशिष्ट नियंत्रण है जिसे आप स्थिति में दिखाना चाहते हैं? –

+0

एएसपी.नेट एमवीसी, मैंने इसके लिए कोई नियंत्रण नहीं रखा है क्योंकि मुझे थोड़ा अनिश्चितता है कि यह किस नियंत्रण को लिख सकता है। क्या उपयुक्त हो? या मैं गलत दिशा में बह रहा हूँ। – Yardstermister

+0

उस निजी विधि का कौन सा वर्ग संबंधित है - नियंत्रक? क्या आप इसे नियंत्रित करने वाले नियंत्रक कार्रवाई के लिए कोड पोस्ट कर सकते हैं? – Charlino

उत्तर

8

MVC

एक अच्छा उदाहरण के लिए देखें ...

ASP.NET MVC Html.ValidationSummary(true) does not display model errors

मूल रूप से, आप त्रुटि संदेश है और यह भी कि तथ्य यह है कि वहाँ है एक त्रुटि का प्रचार करने की जरूरत है अपने नियंत्रक से अपने विचार के लिए। ModelStateDictionary.AddModelError() आपके लिए इन दोनों कार्यों का ख्याल रखेगा।

फिर आप प्रदर्शित करने के लिए ValidationExtensions.ValidationSummary() का उपयोग कर सकते हैं।

वेबफ़ॉर्म

आप नहीं इस के लिए एक सत्यापनकर्ता का उपयोग करने के है। ज्यादातर लोग नहीं करते हैं। एक साधारण स्टाइल डीआईवी अच्छी तरह से काम करना चाहिए।

उदाहरण के लिए।

<div id="errorMessageDiv" runat="server"></div> 

सूचना runat पैरामीटर।

अब आप अपने में

कोड-पीछे आप

errorMessageDiv.innerHTML = "some error message"; 

कोशिश कर सकते हैं क्या तुम सच में एक सत्यापनकर्ता चेकआउट उपयोग करना चाहते हैं ...

http://weblogs.asp.net/ashicmahtab/archive/2008/12/12/putting-messages-into-a-validationsummary-control-from-code.aspx

मूल रूप से आप त्रुटिसंदेश और सेट IsValid पीछे कोड में संबंधित सत्यापनकर्ता पैरामीटर करता है। संबंधित प्रमाणीकरणसमरी त्रुटि संदेश प्रदर्शित करना चाहिए।

+0

यह एएसपी.नेट एमवीसी के लिए गलत है - लेकिन आपको नहीं पता था कि उत्तर पोस्ट करते समय, इसलिए मैं वोट नहीं दूंगा। – Charlino

+0

@ चार्लीनो: मैं एमवीसी स्पष्टीकरण देखता हूं। AFAIK मूल प्रक्रिया एमवीसी के साथ काम करना चाहिए। उदाहरण के लिए। http://stackoverflow.com/questions/446533/what-is-the-status-of-runatserver-tags-in-asp-net-mvc। लेकिन मैं अपडेट करूंगा। – kervin

+0

मुझे वास्तव में यह जवाब पसंद है :) –

0

बस पृष्ठ पर एक एएसपी लेबल नियंत्रण जोड़ें और उसके बाद अपनी टेक्स्ट प्रॉपर्टी को रिटर्न वैले के साथ सेट करें।

+0

यह एएसपी.नेट एमवीसी के लिए गलत है - लेकिन आपको नहीं पता था कि उत्तर पोस्ट करते समय, इसलिए मैं वोट नहीं दूंगा। – Charlino

0

यदि वेबफॉर्म का उपयोग कर आप लेबल नियंत्रण का उपयोग कर सकते हैं और अपने परिणाम के साथ '.Text' प्रॉपर्टी सेट कर सकते हैं। या एक पैनल नियंत्रण। या विशेष रूप से त्रुटि संदेशों को आउटपुट करने के लिए UserControl (यह वही है जो आप करते हैं) कि आप अपने मास्टरपेज में जोड़ सकते हैं।

+1

यह एएसपी.नेट एमवीसी के लिए गलत है - लेकिन आपको नहीं पता था कि उत्तर पोस्ट करते समय, इसलिए मैं वोट नहीं दूंगा। – Charlino

0

आप सत्यापन सारांश का उपयोग कर सकते हैं या आप त्रुटि संदेश

संबंधित मुद्दे