C# 控制器返回文件头以查看非文件
我的表格是这样的C# 控制器返回文件头以查看非文件,c#,asp.net-mvc,asp.net-ajax,C#,Asp.net Mvc,Asp.net Ajax,我的表格是这样的 { using (Ajax.BeginForm("Log", new AjaxOptions { UpdateTargetId = "lessonTable" })) //removed dropdown list ect... for readability input type="submit" name =
{
using (Ajax.BeginForm("Log",
new AjaxOptions {
UpdateTargetId = "lessonTable"
}))
//removed dropdown list ect... for readability
input type="submit" name = "submitButton" value = "Filter"
input type="submit" name = "submitButton" value = "Print Report"
我的控制器就是这样做的
[HttpPost]
public ActionResult Log(lesson lesson,string submitButton)
{
/*Retreive all lessons*/
List<lesson> lessonList = (from l in storeDB.lessons
where l.statusID != DELETED
select l).ToList();
/*Filter retreived Lesson*/
lessonList = filterLesson(lesson,lessonList);
switch (submitButton)
{
case "Filter":
return PartialView(lessonList);
default:
{
return DetailsReport();
}
}
}
单击“打印报告”按钮时,它正在使用文件头更新div,而不是请求用户打开该文件。我已尝试删除updatetarget ID,但它不会提示下载文件。另外,当我调用details报告方法的ajax.actionlink时,它也可以正常工作
谢谢如果我理解你在做什么,它正在按预期工作;因为您是从
Ajax.BeginForm()
发出请求的,所以它试图显示页面中返回的内容。移除目标不会改变这一点
您只需使“打印报告”按钮成为单独表单的一部分,或者根本不是表单,并让它在提交之前从现有表单中提取所需的信息(因为一旦从该表单中删除,它不会自动执行此操作)
return File(renderedBytes, mimeType);