我的节目:
Jquery可以很容易地执行步骤1。但是,如果我在步骤1中使用Jquery,那么我觉得在步骤2中被锁定在ajax帖子中。这意味着(就我所能理解的)步骤3和步骤4需要是不同的控制器操作。在这种情况下,在步骤3中组装的文档需要以某种方式转移到步骤4,我希望文档是临时的,所以我不赞成将数据保存到数据库中。此外,会话存储对复杂的数据类型(如我的模型)犹豫不决。
我把看起来执行1,2和3的代码放在一起,但是,似乎没有一种方法可以轻松地在3到4之间传输数据。文档是暂时的,所以我不想将它存储在数据库中。我更喜欢某些类型的临时服务器端存储。
因此,我的问题是: 1.除了ajax帖子之外,还有其他选项可以将大量的文本数据(超过get的期望)发送到服务器? 2.如果需要两种控制器方法(一种用于组装文档,另一种用于下载),我如何临时“保存”服务器上的数据?我不想使用数据库,会话会对我的复杂对象犹豫不决。
谢谢,马特
DotNetCode组装文档:
[HttpPost]
public ActionResult FinalText(UserModel model)
{
byte[] result = buildDocumentFromModel(model);
return "success";
}DotnetCode返回文档:
[HttpGet]
public FileResult FinalText(int documentId)
{
byte[] result = getDocument(i);
return File(result, "application/pdf", Server.UrlEncode("test.pdf"));
}发布于 2015-02-08 19:09:20
这个问题可以用正规的形式提交来解决。
以下是几个步骤:
这里真的不需要Ajax,当表单被发送,服务器用文件响应下载浏览器时,会自动显示保存对话框,而不会干扰现有页面的显示和行为(不需要重新加载)。
但是,如果您希望通过ajax调用和两个ASP.NET操作(如您所讨论的)实现所描述的行为,您可以将生成的文档作为序列化字符串存储在会话中,并在需要时将其反序列化为字节数组。
我建议第一种办法。
https://stackoverflow.com/questions/28396323
复制相似问题