0
保存HTML報告,我想顯示另存爲對話框,用戶在我的MVC應用程序,並允許他保存爲PDF或字的格式一些HTML報告。爲此,我需要在服務器端使用文件流和IO功能嗎?或者它可能在JQuery級別本身?通過顯示另存爲對話框
我發現網絡上的一些參考,如添加一個響應頭內容處置,但沒有得到如何應用它。你能提出一些建議嗎?
保存HTML報告,我想顯示另存爲對話框,用戶在我的MVC應用程序,並允許他保存爲PDF或字的格式一些HTML報告。爲此,我需要在服務器端使用文件流和IO功能嗎?或者它可能在JQuery級別本身?通過顯示另存爲對話框
我發現網絡上的一些參考,如添加一個響應頭內容處置,但沒有得到如何應用它。你能提出一些建議嗎?
必須從ActionResult
與輸出播放所需的方式創建一個後代。
這是一類礦井我創建實施「另存爲Excel」功能:
public class ExcelResult : ActionResult
{
private string _fileName;
private IQueryable _rows;
private string[] _headers = null;
private string _data;
private TableStyle _tableStyle;
private TableItemStyle _headerStyle;
private TableItemStyle _itemStyle;
public string FileName
{
get { return _fileName; }
}
public IQueryable Rows
{
get { return _rows; }
}
public ExcelResult(string data, string fileName)
{
_fileName = fileName;
_data = data;
}
public override void ExecuteResult(ControllerContext context)
{
WriteFile(_fileName, "application/ms-excel", _data);
}
private string ReplaceSpecialCharacters(string value)
{
value = value.Replace("’", "'");
value = value.Replace("「", "\"");
value = value.Replace("」", "\"");
value = value.Replace("–", "-");
value = value.Replace("…", "...");
return value;
}
private void WriteFile(string fileName, string contentType, string content)
{
HttpContext context = HttpContext.Current;
context.Response.Clear();
context.Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
context.Response.Charset = "";
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
context.Response.ContentType = contentType;
context.Response.Write(content);
context.Response.End();
}
}
你可以用這個例子來生成HTML字。 PDF是另一回事,這是'。