1

我正在尝试整理一个页面,用户可以通过该页面上传文件,然后将其转到数据库。

我正在学习教程,到目前为止,我的控制器方法如下所示:

public ActionResult Index()
{
    ViewData["Message"] = "File Upload";
    foreach (string upload in Request.Files)
    {
        if (!Request.Files[upload].HasFile()) continue;
        string path = AppDomain.CurrentDomain.BaseDirectory + "uploads/";
        string filename = Path.GetFileName(Request.Files[upload].FileName);
        Request.Files[upload].SaveAs(Path.Combine(path, filename));
    }

    return View();
}

这也是我的观点的一个例子:

<p>
    <% using (Html.BeginForm("", "home", FormMethod.Post, new { enctype = "multipart/form-data" }))
       { %>
    <input type="file" name="FileUpload1" /><br />
    <input type="submit" name="Submit" id="Submit" value="Upload" />
    <% } %>
</p>

但是,我目前遇到两个编译错误:

  1. “System.Web.HttpPostedFileBase”不包含“HasFile”的定义,并且找不到接受“System.Web.HttpPostedFileBase”类型的第一个参数的扩展方法“HasFile”(您是否缺少 using 指令或程序集引用?)
  2. 当前上下文中不存在名称“路径”

这也是我在控制器中用于命名空间的示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.UI.WebControls;

如果有人能指出我纠正此错误的正确方向,我将不胜感激。

4

1 回答 1

3

我想我找到了你正在关注的教程

如果是这样 - 检查作者为 HasFile() 方法编写自定义扩展方法的部分。它不是框架的一部分,因此您也需要创建它。

第二个问题是 Path 是 System.IO 命名空间的一部分,因此您也需要添加它。

于 2010-10-29T10:19:21.193 回答