首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.NET MVC3创建并下载文档

使用.NET MVC3创建并下载文档
EN

Stack Overflow用户
提问于 2015-02-08 16:25:17
回答 1查看 50关注 0票数 0

我的节目:

  1. 从我的网站上收集信息。(Jquery)
  2. 向服务器发送数据。(Ajax员额)
  3. 服务器将数据组装成文档。(请参阅下面的.NET代码)
  4. 自动下载文档。(文件对话框可以或其他方式)(请参阅下面的.NET代码)

Jquery可以很容易地执行步骤1。但是,如果我在步骤1中使用Jquery,那么我觉得在步骤2中被锁定在ajax帖子中。这意味着(就我所能理解的)步骤3和步骤4需要是不同的控制器操作。在这种情况下,在步骤3中组装的文档需要以某种方式转移到步骤4,我希望文档是临时的,所以我不赞成将数据保存到数据库中。此外,会话存储对复杂的数据类型(如我的模型)犹豫不决。

我把看起来执行1,2和3的代码放在一起,但是,似乎没有一种方法可以轻松地在3到4之间传输数据。文档是暂时的,所以我不想将它存储在数据库中。我更喜欢某些类型的临时服务器端存储。

因此,我的问题是: 1.除了ajax帖子之外,还有其他选项可以将大量的文本数据(超过get的期望)发送到服务器? 2.如果需要两种控制器方法(一种用于组装文档,另一种用于下载),我如何临时“保存”服务器上的数据?我不想使用数据库,会话会对我的复杂对象犹豫不决。

谢谢,马特

DotNetCode组装文档:

代码语言:javascript
复制
[HttpPost]
public ActionResult FinalText(UserModel model)
{
    byte[] result = buildDocumentFromModel(model);
    return "success";
}

DotnetCode返回文档:

代码语言:javascript
复制
[HttpGet]
public FileResult FinalText(int documentId)
{
    byte[] result = getDocument(i);
    return File(result, "application/pdf", Server.UrlEncode("test.pdf"));
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-08 19:09:20

这个问题可以用正规的形式提交来解决。

以下是几个步骤:

  1. 定义有输入的常规表单并提交按钮
  2. 定义接受ASP.NET UserModel的操作方法,构建文档并将其作为文件结果返回(而不是字符串"success")。

这里真的不需要Ajax,当表单被发送,服务器用文件响应下载浏览器时,会自动显示保存对话框,而不会干扰现有页面的显示和行为(不需要重新加载)。

但是,如果您希望通过ajax调用和两个ASP.NET操作(如您所讨论的)实现所描述的行为,您可以将生成的文档作为序列化字符串存储在会话中,并在需要时将其反序列化为字节数组。

我建议第一种办法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28396323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档