我正在使用ASP.NET MVC 4和Web API。
我希望能够在点击按钮时下载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();
}
我的网络API动作如下
[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'但是在网络API动作中它将日期转换为'mm / dd / yyyy'
例如,
如果我有
之类的日期我该如何解决这个问题?
我在传递json数据时遇到了类似的问题,我使用this修复了这个问题但是我不知道如何处理这个问题。
请帮助我,因为互联网上几乎没有任何内容可用于此。
答案 0 :(得分:1)
您可以将StartDate的类型Datetime更改为String。
然后,发布到行动,ParseExact字符串到日期时间
DateTime startDate = DateTime.ParseExact(model.StartDate, "dd/MM/yyyy", null);
DateTime endDate = DateTime.ParseExact(model.EndDate, "dd/MM/yyyy", null);