2009-11-20 4 views
5

मुझे आश्चर्य है कि मैं एएसपीएनटी एमवीसी में पोस्टबैक के बाद फ़ील्ड कैसे साफ़ करूं? अभी इस तरह की तरह जब सत्यापन त्रुटियां होती हैं तो फ़ील्ड जो भी उपयोगकर्ता प्रवेश करेगा, उसके साथ आबादी रहती है। हालांकि यह ठीक है, जब कोई सत्यापन त्रुटियां नहीं होती हैं, तो मैं सभी फ़ील्ड को साफ़ करना चाहता हूं और प्रदर्शित करने के लिए एक संदेश चाहता हूं।एएसपीएनटी एमवीसी में वापस पोस्ट करने के बाद फ़ील्ड को कैसे साफ़ करें?

तो अभी मुझे दृश्यडेटा का उपयोग करके सफलता प्रदर्शित कर रही है लेकिन यह सुनिश्चित नहीं है कि फ़ील्ड को कैसे साफ़ किया जाए।

उत्तर

0

PRG (Post Redirect Get) pattern के लिए एक नौकरी की तरह लगता है क्योंकि आप उन पृष्ठ को ताज़ा करने नहीं चाहते हैं और उसे पुन: सबमिट कर दिया है।

ऐसा करने के लिए मैं आपके टेम्पपडेटा में एक संदेश या ध्वज डालूंगा ताकि आप निरीक्षण कर सकें कि जब आप मूल यूआरएल पर वापस रीडायरेक्ट करते हैं तो उपयोगकर्ता को एक संदेश प्रदर्शित करें।

2

फिल Haack ने कहा:

ModelState["value1"].Value = new 
ValueProviderResult(null, 
string.Empty, 
CultureInfo.InvariantCulture); 

कॉल करने से पहले आप अपने नियंत्रक कार्रवाई के भीतर से देखने लौटने की कोशिश करो।

यह क्या करता है सभी त्रुटियों को रखने कुंजी "मान 1" के साथ जुड़ा हुआ है, लेकिन एक खाली मूल्य के साथ मूल्य बदल देता है।

From this SO question

-1

जब आप दृश्य में वापस मॉडल पोस्ट करते हैं तो आप मॉडल, नया संदर्भ असाइन कर सकते हैं।
कुछ ऐसा है।

if (ModelState.IsValid) 
    { 
     //Do your stuff here. 

     yourModel = new Moodel(); 
     return View(yourModel); 

    } 

इस परिदृश्य में सभी मॉडल फ़ील्ड खाली होंगे और फॉर्म पर कुछ भी प्रदर्शित नहीं होगा।

+0

यह काम नहीं करता, ModelState.Clear() तथापि करता –

8

इस प्रयास करें:

if(ModelState.IsValid) 
{ 
    ModelState.Clear(); 
} 
return View(); 
+0

भी इस लाइन के बाद अपने ModelState त्रुटियों सेट कर सकते हैं :) – stuartdotnet

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