我想知道是否有可能编写一个像这样的文件FileResult。
public ActionResult Generate(int id)
{
//Fill Model
string ViewName = "template1";
return new FileResult(ViewName, @"c:\save"+ id +".txt");
}
它将采用模型,并将其与视图结合,为您提供通常显示在屏幕上的输出,而只是使用指定的文件名保存它。
注意:此文件将保存在网络服务器
答案 0 :(得分:0)
我认为不可能。您可以指定文件名和mime类型,但就是这样。想象一下您提出的建议所带来的安全漏洞。
答案 1 :(得分:0)
是的,这是可能的,但你不使用FileResult。 If you set the content type and disposition headers to something unknown,浏览器会提示用户保存结果。
答案 2 :(得分:0)
如前所述,出于安全原因,您不能这样做,但如果提示用户保存文件,则可以保存文件。我已经为我的简历做了这件事。我的简历有一个单词版本 从xml生成。所以我有一个像这样的WordResult:
public class WordResult : ActionResult
{
public string FileName { get { return "Resume.doc"; } }
public override void ExecuteResult(ControllerContext context)
{
GenerateMsWordDoc(context);
}
public void GenerateMsWordDoc(ControllerContext context)
{
// You can add whatever you want to add as the HTML and it will be generated as Ms Word docs
context.HttpContext.Response.AppendHeader("Content-Type", "application/msword");
context.HttpContext.Response.AppendHeader("Content-disposition", "attachment; filename=" + FileName);
}
}
要查看此操作:http://www.aspevia.com/resume/show是标准网络版 http://www.aspevia.com/resume/show?format=word是单词version