2010-01-24 10 views
15

मैं सोच रहा हूँ अगर आपफ़ाइल() asp.net mvc में स्ट्रीम बंद करें?

public FileResult result() 
{ 
    Stream stream = new Stream(); 
    return File(stream,"text/html","bob.html"); 
} 

की तरह कुछ करना है, तो फ़ाइल() आप के लिए धारा को बंद होगा? चूंकि मैंने "स्ट्रीम" को एक प्रयोग कथन में डालने की कोशिश की लेकिन यह हमेशा मुझे एक त्रुटि दे रही है कि स्ट्रीम बंद हो गई थी।

public FileResult result() 
{ 
    using(Stream stream = new Stream()) 
    { 
     return File(stream,"text/html","bob.html"); 
    } 
} 
+1

यह आपको त्रुटि देता है कि स्ट्रीम बंद हो जाती है? –

+1

जब यह वापसी फ़ाइल हिट करता है()। यह कहता है कि धारा बंद है। – chobo2

+0

इससे मदद मिल सकती है। [स्टेटमेंट का उपयोग] (http://msdn.microsoft.com/en-us/library/yh598w02.aspx) – griegs

उत्तर

6

आप File वस्तु का उपयोग कर रहे हैं तो bob.html के रूप में डाउनलोड के लिए परिणामी फ़ाइल भेजने के लिए हाँ।

मेरा मानना ​​है कि सभी मानक स्ट्रीम (आउटपुटस्ट्रीम, फ़ाइलस्ट्रीम, क्रिप्टोस्ट्रीम) बंद या डिस्पोजेड होने पर फ्लश करने का प्रयास करेंगे।

एमवीसी ढांचे के भीतर कई कक्षाएं हैं जो बेस FileResult कक्षा को लागू करती हैं।

System.Web.Mvc.FileResult 
System.Web.Mvc.FileContentResult 
System.Web.Mvc.FilePathResult 
System.Web.Mvc.FileStreamResult 
+1

फ़ाइल() अन्य फाइलों का उपयोग करने के लिए आप अन्य अन्य स्थितियों का उपयोग कैसे करेंगे? – chobo2