我有一个带动作的按钮:
<a id="viewlog" href="" class="btn btn-default" />
并且:
$("#viewlog").bind('click', function (e) {
$.ajax({
url: "/Log/FindFile?idTraitement=" + $("#IdTraitement").val(),
success: function (data) {
if(data.success == false){
Lobibox.alert('error', { title: 'Erreur', msg: 'Fichier introuvable' });
}
else
window.location.href = "/Log/GetTraitementLogs?idTraitement=" + $("#IdTraitement").val();
},
error: function (response) {
Lobibox.alert('error', { title: 'Erreur', msg: response.responseText });
}
});
});
动作调用就是这个,想法是如果找到一个文件我返回true,否则为false:
public JsonResult FindFile(int idTraitement)
{
string filename = string.Empty;
try
{
filename = new QryTraitementService().GetErrLogFilename(idTraitement);
}
catch(Exception e)
{
return Json(new { success = false, responseText = e.Message }, JsonRequestBehavior.AllowGet);
}
return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
然后,如果找到该文件:
public FileResult GetTraitementLogs(int idTraitement)
{
string filename = new QryTraitementService().GetErrLogFilename(idTraitement);
return File(filename,"text/csv",filename);
}
所以,首先,当我回到客户端使用firefox或chrome时,我会转到ajax中的error
,但是使用IE,我会在{{1}中使用var success
取得成功}}
但是最大的问题是该函数总是将我重定向到无处,所以我在404中失败了。为什么这个调用总是重定向我?即使我没有传递data
?