का उपयोग कर सीएसवी में निर्यात करें, मैं एक CSV फ़ाइल में एक सूची निर्यात करने की कोशिश कर रहा हूं। मुझे यह सब उस बिंदु तक काम कर रहा है जिसे मैं प्रतिक्रिया स्ट्रीम में फ़ाइल में लिखना चाहता हूं। यह कुछ भी नहीं करता है।एमवीसी, सी # और jQuery
कॉल पेज से विधि:
यहाँ मेरी कोड है।
[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)
कुछ भी नहीं के बाद हो रहा है:
$('#btn_export').click(function() {
$.post('NewsLetter/Export');
});
नियंत्रक में कोड इस प्रकार है। क्या इस तरह से फाइल को सहेजना भी संभव है?
सादर
संपादित
प्रतिक्रिया हेडर मैं देख रहा हूँ कि जब मैं बटन पर क्लिक करें हैं:
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 भाग से छुटकारा पाने के लिए इसे एक हाइपरलिंक द्वारा प्रतिस्थापित किया गया और यह काम कर रहा है अब मेरे लिए ठीक:
public ActionResult ExportData()
{
System.IO.FileInfo exportFile = //create your ExportFile
return File(exportFile.FullName, "text/csv", string.Format("Export-{0}.csv", DateTime.Now.ToString("yyyyMMdd-HHmmss")));
}
हो सकता है कि इतने पर इस सवाल में मदद करता है डेटाबेस कॉल करते हैं और datatable या कॉल प्राप्त कुछ विधि एक datatable के लिए डेटाबेस तालिका से डेटा प्राप्त करें और फिर निम्न है,: http: // stackoverflow.com/questions/4522590/unable-to-open-download-save-dialog – Rob