WebAPIでASP.NETMVC4を使用しています。
ボタンをクリックするだけでcsvファイルをダウンロードできるようにしたい。
以下は、API「exportfruit」へのjquery呼び出しです。
function downloadFile(){
var data = {
StartDate: this.model.get('StartDate'),
Name: this.model.get('Name')
};
var form = document.createElement('form');
form.action = 'api/fruitapi/exportFruit';
form.method = 'POST';
form.style.display = 'none';
for (i in data) {
if (data[i] != "") {
var inputElement = document.createElement('textarea');
inputElement.name = i;
inputElement.value = data[i];
form.appendChild(inputElement);
}
}
document.body.appendChild(form);
form.submit();
}
私のWebAPIアクションは次のとおりです
[ActionName("ExportFruit")]
public HttpResponseMessage PostExportFruit(SomeModel model)
{
// for now i am just testing the value returned from model.
string csv = "some data from db";
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StringContent(csv);
//a text file is actually an octet-stream (pdf, etc)
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
//we used attachment to force download
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
result.Content.Headers.ContentDisposition.FileName = "testfile.csv";
return result;
}
今私が直面している問題は、日付を「dd / mm / yyyy」として渡していることですが、Web APIアクションでは、日付を「mm / dd/yyyy」に変換します
たとえば、
私が次のような日付を持っている場合
- 2012年1月2日これは2012年2月1日に変換されます
- 2012年10月22日(現在の日付)が0001年1月1日に変換された場合
これを修正するにはどうすればよいですか?
これを使って修正したjsonデータを渡すときにも同様の問題がありましたが、これをどうやって進めるのかわかりません。
これについてインターネット上で利用できるコンテンツはほとんどないので、これについて私を助けてください。