我从如下操作中下载了一个文件:
[HttpPost]
public override FileContentResult Foo() {
var someDataAsBytes = ...
return File(someDataAsBytes, "text/csv", "somefilename.csv");
}
视图有一个表单,它发布到此操作。
我在脚本中启动下载,这样页面就不会改变:
$(myForm).on("submit", function() {
window.location.href = $(this).attr("action");
});
该文件已正确下载。
但是,我的Elmah日志显示存在“没有匹配操作”的错误。
如果我使用[HttpHead]
、[HttpPost]
或[HttpGet]
,就会得到相同的结果。如果删除HTTP方法,则不会出现错误。
理想情况下,我想使用POST,但这并不重要。如何将操作限制在其中之一,但不获取错误?
发布于 2015-06-02 07:21:14
答案是,每次我点击下载文件,就会发送两个请求,一个帖子和一个头。
如果操作两者都不接受,则抛出异常。如果没有指定HTTP方法,那么两种方法都可以顺利通过。
这就是问题的答案。
但是,我不知道为什么一开始有两个请求。我会在a separate question问这个问题。
https://stackoverflow.com/questions/30588943
复制相似问题