मैं एक सूची को CSV फ़ाइल में निर्यात करने का प्रयास कर रहा हूं। मुझे यह सब उस बिंदु पर काम करना था जो मैं प्रतिक्रिया स्ट्रीम में फ़ाइल करना चाहता हूं। यह कुछ भी नहीं करता है।
यहाँ मेरा कोड है:
पृष्ठ से विधि को कॉल करें।
$('#btn_export').click(function () {
$.post('NewsLetter/Export');
});
नियंत्रक में कोड निम्नानुसार है:
[HttpPost]
public void Export()
{
try
{
var filter = Session[FilterSessionKey] != null ? Session[FilterSessionKey] as SubscriberFilter : new SubscriberFilter();
var predicate = _subscriberService.BuildPredicate(filter);
var compiledPredicate = predicate.Compile();
var filterRecords = _subscriberService.GetSubscribersInGroup().Where(x => !x.IsDeleted).AsEnumerable().Where(compiledPredicate).GroupBy(s => s.Subscriber.EmailAddress).OrderBy(x => x.Key);
ExportAsCSV(filterRecords);
}
catch (Exception exception)
{
Logger.WriteLog(LogLevel.Error, exception);
}
}
private void ExportAsCSV(IEnumerable<IGrouping<String, SubscriberInGroup>> filterRecords)
{
var sw = new StringWriter();
//write the header
sw.WriteLine(String.Format("{0},{1},{2},{3}", CMSMessages.EmailAddress, CMSMessages.Gender, CMSMessages.FirstName, CMSMessages.LastName));
//write every subscriber to the file
var resourceManager = new ResourceManager(typeof(CMSMessages));
foreach (var record in filterRecords.Select(x => x.First().Subscriber))
{
sw.WriteLine(String.Format("{0},{1},{2},{3}", record.EmailAddress, record.Gender.HasValue ? resourceManager.GetString(record.Gender.ToString()) : "", record.FirstName, record.LastName));
}
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=adressenbestand.csv");
Response.ContentType = "text/csv";
Response.Write(sw);
Response.End();
}
लेकिन उसके बाद Response.Write(sw)
भी कुछ नहीं हो रहा है। क्या इस तरह से फ़ाइल को सहेजना संभव है?
सादर
जब मैं बटन पर क्लिक करता हूं तो मुझे जो प्रतिक्रियाएं दिखाई देती हैं उन्हें संपादित करें :
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/csv; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 2.0
Content-Disposition: attachment; filename=adressenbestand.csv
X-Powered-By: ASP.NET
Date: Wed, 12 Jan 2011 13:05:42 GMT
Content-Length: 113
जो मुझे ठीक लगे ।।
संपादित करें
मुझे एक हाइपरलिंक द्वारा प्रतिस्थापित jQuery के भाग से छुटकारा मिल गया है और यह मेरे लिए अब ठीक काम कर रहा है:
<a class="export" href="NewsLetter/Export">exporteren</a>