2010-05-25 8 views
5

में क्लाइंट को एक्सएमएल फ़ाइल कैसे भेजें एक एएसपी.नेट एमवीसी में मेरे पास डेटाबेस तालिका है। मैं कुछ दृश्य पृष्ठ पर एक बटन रखना चाहता हूं, अगर कुछ उपयोगकर्ता उस बटन पर क्लिक करते हैं तो मेरा एप्लिकेशन डेटाबेस में सभी पंक्तियों वाली एक्सएमएल फ़ाइल उत्पन्न करेगा। फिर एक्सएमएल युक्त फाइल क्लाइंट को भेजी जानी चाहिए ताकि उपयोगकर्ता एक पॉप-अप विंडो डाउनलोड कर सके।ASP.NET MVC

इसी प्रकार मैं उपयोगकर्ता को एक XML फ़ाइल अपलोड करने की अनुमति देना चाहता हूं जिसकी सामग्री डेटाबेस में जोड़ दी जाएगी।

उपयोगकर्ता को अपलोड करने और फ़ाइल डाउनलोड करने का सबसे आसान तरीका क्या है?

सभी जवाब

संपादित करने के लिए धन्यवाद:

public FileContentResult Download() { 
     if(model.Series.Count() < 1) { 
      byte[] content = new byte[0]; 
      return new FileContentResult(content, "Series"); 
     } 
     XmlSerializer serializer = new XmlSerializer(model.Series.FirstOrDefault().GetType()); 

     MemoryStream xmlStream = new MemoryStream(); 
     foreach (Series s in model.Series) { 
      serializer.Serialize(xmlStream, s); 
     } 

     byte[] content2 = new byte[xmlStream.Length]; 
     xmlStream.Position = 0; 
     xmlStream.Read(content2, 0, (int) xmlStream.Length); 

     return File(content2, "Series"); 
} 

मॉडल कहाँ DataContext है: यह मेरा तरीका है। यह कैसे काम नहीं करता है। जब मैं डेटा डाउनलोड करने का प्रयास मैं इस त्रुटि मिलती है:

XML Parsing Error: junk after document element 
Location: http://localhost:1399/Xml/Download 
Line Number 7, Column 10:</Series><?xml version="1.0"?> 
---------^ 

उत्तर

3

डाउनलोड भाग के लिए, आप इस्तेमाल कर सकते हैं FileStreamResult

This page अपलोड और डाउनलोड के लिए उदाहरण है; इसकी जांच - पड़ताल करें।

1

एक एक्सएमएल दस्तावेज़ में केवल एक शीर्ष स्तर का तत्व हो सकता है। तत्व के अंत के बाद, आपके पास कुछ और नहीं हो सकता है। ऐसा लगता है कि "</Series>" तत्व के बाद आपके पास "< ?xml version="1.0>", है जो अमान्य है।