【发布时间】:2015-03-09 17:52:16
【问题描述】:
我正在使用 form.submit() 从 ASP.NET MVC (3) 站点下载文件。 大多数情况下它工作得很好,但在某些用例(总是相同的)中,它甚至无法到达控制器。
这是基本的 javascript 代码:
var url = "/Correspondence/LoadAttachment/";
var form = $('<form id="RemoveMe" action="' + url + '" method="post" style="display: none;"></form>');
var referenceId = Case.CurrentCase.CaseReferenceId.ReferenceId;
var username = Case.CurrentCase.CustomerData.CorrespondenceData.Username;
var caseId = Case.CurrentCase.Id;
var token = new Date().getTime();
var fileDownloadCheckTimer;
form.append('<input name="mailId" value="' + mid + '" />');
form.append('<input name="fileName" value="' + fileName + '" />');
form.append('<input name="username" value="' + username + '" />');
form.append('<input name="caseId" value="' + caseId + '" />');
form.append('<input type="hidden" name="downloadToken" value="' + token + '" />');
form.submit();
这是基本的控制器代码:
[ValidateInput(false)]
public ActionResult LoadAttachment()
{
try
{
uint mailId;
UInt32.TryParse(Request.Form["mailId"], out mailId);
...
return new FileContentResult(attachment.BinaryContent, attachment.ContentType)
{
FileDownloadName = attachment.Filename
};
}
catch (Exception ex)
{
Logger.LogErrorMessage(() => ex.ToString());
return Json("");
}
}
现在,即使我在失败的用例中为一个用例正常工作的表单中输入了相同的值,它仍然会失败。所以问题一定出在其他地方。但我无法弄清楚我的生命在哪里......
顺便说一句,问题在 Chrome 和 FireFox 浏览器中重现
【问题讨论】:
标签: javascript asp.net .net asp.net-mvc