2011-03-17 10 views
27

पर मान्यता सारांश निर्दिष्ट इस प्रकार मैं एक पृष्ठ पर 2 रूपों की है। मैं अपने आप को लक्षित करने के लिए सत्यापन सारांश कैसे प्राप्त करूं?कई रूपों

उत्तर

5

समाधान जब आप अधिक जानकारी के लिए अपने प्रपत्र

मान्य जाँच this blog post

+1

यह दो सत्यापन सारांशों के मुद्दे का उत्तर है। केवल वह सत्यापन सारांश बनाएं जिसे आप दिखाना चाहते हैं। उदाहरण के लिए, उपयोगकर्ता लॉगिन पर क्लिक करता है। नियंत्रक में, मॉडल की एक संपत्ति सेट करें, जैसे कि "चालू करने" से "लॉगिंग-इन" "फिर उस प्रॉपर्टी का उपयोग फॉर्म के रजिस्टर भाग के लिए सत्यापन सारांश नहीं खींचने के लिए करें। –

0

आदेश में इस आप दो रूपों को अलग करने की जरूरत है को पूरा करने में ही मान्यता सारांश आकर्षित करने के लिए है, एक आंशिक में हर एक डाल सत्यापन विफल होने पर सबमिट पर आंशिक दृश्य देखें, और देखें। आंशिक परिणाम लौटने के लिए अपना क्रिया परिणाम बदलें।

आंशिक दृश्य का उपयोग कर पृष्ठ में गाया जा सकता है निम्नलिखित:

@Html.partial("_PartialView") 

या इस तरह से अगर आप एक मॉडल

@Html.partial("_Partial", Model) 

आप दो मान्यता के सारांश पर नहीं हो सकता है पारित करने के लिए की जरूरत है वही पृष्ठ किसी अन्य तरीके से।

-1

स्पष्ट रूप से विश्वास है कि दोनों रूपों आप विभिन्न कार्यों के लिए की तरह

@using (Html.BeginForm("SendCode", "Auth")) 
{ 
    @Html.ValidationSummary() 
    @Html.Label("code", "Confirmation Code") 
    @Html.TextBox("code") 
    <input type="submit" value="Go" /> 
} 
@using (Html.BeginForm("SendConfirmation", "Auth")) 
{ 
    @Html.ValidationSummary() 
    @Html.Label("email", "Email") 
    @Html.TextBox("email") 
    <input type="submit" value="Resend" /> 
} 

कार्रवाई और रूप में नियंत्रक परिभाषित करते हैं, अगर आप 1 दृश्य में अनेक रूप हो।

+0

यह समस्या का समाधान नहीं करता है, HtmlHelper.ValidationSummary विधि बस मॉडलस्टेट शब्दकोश में त्रुटियों को पढ़ती है और उन्हें प्रदर्शित करती है, भले ही वे किस रूप में उत्पन्न हुई हों – Nick

2

Html.ValidationSummary() आपके form तत्व के अंदर होने की आवश्यकता नहीं है और आपको केवल एक बार सबसे अधिक मामलों की आवश्यकता है। मैं इसे अपने दो रूपों से बाहर ले जाऊंगा, कुछ ऐसा जो आपके मुख्य शरीर की सामग्री से ऊपर है और आपको वांछित प्रभाव देना चाहिए। मैं अपने आखिरी ऐप में विश्वास करता हूं कि मैंने इसे लेआउट फ़ाइल में रखा है।

14

दोनों अपने रूपों पर सबमिट बटन पर एक अनूठा नाम प्रदान करें, ताकि जैसे:

@using (Html.BeginForm()) 
{ 
    @Html.ValidationSummary() 
    @Html.Label("code", "Confirmation Code") 
    @Html.TextBox("code") 
    <input type="submit" name="login-top" value="Go" /> 
} 
@using (Html.BeginForm("SendConfirmation", "Auth")) 
{ 
    @Html.ValidationSummary() 
    @Html.Label("email", "Email") 
    @Html.TextBox("email") 
    <input type="submit" name="login-main" value="Resend" /> 
} 

तो फिर तुम कुंजी के लिए अनुरोध का मान की जाँच करके देख सकते हैं कि एक विशेष रूप प्रस्तुत किया गया है कि सबमिट बटन से मेल खाता है और फिर सशर्त रूप से सत्यापन सारांश यानी प्रदर्शित करता है। शीर्ष रूप में आप जोड़ देंगे:

if (Request.Form.AllKeys.Contains("login-top")) 
{ 
    @Html.ValidationSummary() 
} 
संबंधित मुद्दे