2009-10-14 17 views
53

से डाउनलोड करने के लिए सादा टेक्स्ट फ़ाइल लौटाकर नियंत्रक विधि से कॉलर पर एक सादा-पाठ फ़ाइल वापस करने की आवश्यकता पर विचार करें। विचार है कि ब्राउज़र में सादे टेक्स्ट के रूप में देखने के बजाए फ़ाइल डाउनलोड की जाए।एएसपी.नेट एमवीसी: कंट्रोलर विधि

मेरे पास निम्न विधि है, और यह अपेक्षा के अनुसार काम करता है। फ़ाइल को डाउनलोड करने के लिए ब्राउज़र में प्रस्तुत किया गया है, और फ़ाइल स्ट्रिंग के साथ आबादी है।

मैं इस विधि के 'अधिक सही' कार्यान्वयन को देखना चाहता हूं, क्योंकि मैं void रिटर्न प्रकार के साथ 100% आरामदायक नहीं हूं।

public void ViewHL7(int id) 
{ 
    string someLongTextForDownload = "ABC123"; 

    Response.Clear(); 
    Response.ContentType = "text/plain"; 
    Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.hl7", id.ToString())); 
    Response.Write(someLongTextForDownload); 
    Response.End(); 
} 

उत्तर

112

एक FileResult

public ActionResult ViewHL7(int id) 
{ 
    ... 

    return File(Encoding.UTF8.GetBytes(someLongTextForDownLoad), 
       "text/plain", 
        string.Format("{0}.hl7", id)); 
} 
+0

Tks tvanfosson वापस जाने के लिए नियंत्रक वर्ग पर फ़ाइल विधि का उपयोग करें। आपके उत्तर ने मुझे बहुत मदद की। –

+0

यह अच्छा नहीं होगा अगर एसओ कक्षाओं को उठा सके तो हम ओवरलोड को बिना Google के बिना देख सकते हैं: p – Jimmy

5

आप अपनी विधि से FileContentResult वापस करना चाहेंगे।

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