上传和处理文件ASP.NET MVC 3

时间:2012-07-11 13:39:02

标签: asp.net-mvc asp.net-mvc-3 file-upload readfile

我是ASP.NET和MVC3的新手,我正在尝试弄清楚如何上传文件并处理其内容,然后在视图中显示结果。

我可以使用以下视图代码成功上传文件:

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new {
id="UploadForm",
enctype = "multipart/form-data"})){
<input type="file" name="file" id="Upload" size="60" />
<input type="submit" value="Submit" id="submitID" /> }

......以及以下控制器代码:

public ActionResult Index(HttpPostedFile file) {
if (file != null && file.ContentLength > 0) {
var filename = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/REPO"), fileName);
file.SaveAs(path); }
return RedirectToAction("Index"); }

我无法弄清楚我上传文件后如何继续:我想执行服务器端代码来读取文件内容,然后在索引视图上显示结果。

所以这就是我想要做的事情:

  1. 重定向到某个进程(控制器操作)
  2. 将字符串中的文件名传递给操作
  3. 使用服务器端程序读取文件以生成输出(此部分已在C#中编码并从字符串输入中输出字符串)
  4. 将该字符串传递回索引视图控制器以显示在页面上
  5. 我该怎么办?请明确回答,不要过多考虑,因为正如我所说,我对ASP.NET和MVC相对较新(约2周)。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

public ActionResult Index(HttpPostedFile file)
    {
        if (file != null && file.ContentLength > 0)
        {
            var filename = Path.GetFileName(file.FileName);
            var path = Path.Combine(Server.MapPath("~/REPO"), fileName);
            file.SaveAs(path);

            string result = DoStuffWithFile(file);

            ViewBag.FileResult = result;

        }
        return View();
    }

然后在视图中使用@ViewBag.FileResult来获取字符串。

相关问题