1

我需要在网页上创建一个组件来导入一个 excel 文件,以便它包含的数据可以插入到一个表中。这需要我将文件发送到服务器,提取数据并将数据发送回以插入表中。我在服务器端使用 ASP.NET MVC3。

我在不使用 Ajax 的情况下完成了文件上传,并使用 OleDB 连接执行了数据提取以访问文件。问题围绕着将数据发送回以插入表中。我以为我可以使用 Ajax.BeginForm() 辅助方法来上传文件,但这显然不适用于文件上传(谁能告诉我为什么?)。所以我需要找到一种使用 Ajax 将数据发送回客户端的方法。谷歌搜索我发现了许多支持 ajax 的文件上传器的工具。我看过使用的是:

http://valums.com/ajax-upload/

这通过在上传文件时返回 json 成功消息来工作。这不符合我正在尝试做的事情,因为我不想将文件存储在服务器上,而是想将数据传回。我只学习 JavaScript 和 JQuery,所以我想知道我是否可以只返回 json 格式的数据并在客户端创建一个处理程序以将其添加到表中?我将不胜感激任何代码片段或有关如何实现这一目标的指导。

或者,如果有更好的方法来做到这一点,我很乐意改变我的方法。

4

2 回答 2

1

尝试这个:

  1. 将文件上传到服务器中的某个自定义临时文件夹中,为其指定一个随机文件名

  2. 上传完成后,使用 ASP 创建一个表(在指定页面本身。我的意思是使用从文件收集的数据修改您的主页)

  3. 创建表后,删除文件并完成其余工作

于 2012-05-12T17:25:17.527 回答
1

我不熟悉你提到的ajax上传工具包。但是你的问题并没有真正解释你在哪里卡住了,而是你想要完成什么。您可以上传到服务器,但您能否返回正确的 JSON?

一旦你让那部分工作,看起来该工具包允许你设置一个OnComplete功能:

onComplete: function(id, fileName, responseJSON){},

这将允许您responseJSON按照您认为合适的方式使用并填充您的表格。例如(虽然不是最大的):

onComplete: function(id, fileName, responseJson){
    $(responseJson).each(function(){    
        $('#yourTable').append('<tr><td>' + this + </td></tr>')
    });
}

这是关于这个主题的另一个很好的链接:http: //aspzone.com/tech/jquery-file-upload-in-asp-net-mvc-without-using-flash/

这是一个 hanselman 链接,其中可能包含您正在寻找的更多详细信息:http ://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspx

于 2012-05-12T14:00:05.707 回答